diff options
author | Petri Lehtinen <petri@digip.org> | 2010-03-26 21:59:53 +0200 |
---|---|---|
committer | Petri Lehtinen <petri@digip.org> | 2010-03-26 21:59:56 +0200 |
commit | bb89a5d4d377f7b6b8c0c9ce3a2698b112447d08 (patch) | |
tree | 1b3058c41825cddb68ccd4fdaf9146898fc3515a /src | |
parent | f76966b4387607f54f294630ffc6d89a78530787 (diff) | |
download | jansson-bb89a5d4d377f7b6b8c0c9ce3a2698b112447d08.zip jansson-bb89a5d4d377f7b6b8c0c9ce3a2698b112447d08.tar.gz jansson-bb89a5d4d377f7b6b8c0c9ce3a2698b112447d08.tar.bz2 |
Estimate real number underflows with 0.0
Earlier it was a decoding error.
Diffstat (limited to 'src')
-rw-r--r-- | src/load.c | 9 |
1 files changed, 1 insertions, 8 deletions
@@ -483,14 +483,7 @@ static int lex_scan_number(lex_t *lex, char c, json_error_t *error) value = strtod(saved_text, &end); assert(end == saved_text + lex->saved_text.length); - if(value == 0 && errno == ERANGE) { - error_set(error, lex, "real number underflow"); - goto out; - } - - /* Cannot test for +/-HUGE_VAL because the HUGE_VAL constant is - only defined in C99 mode. So let's trust in sole errno. */ - else if(errno == ERANGE) { + if(errno == ERANGE && value != 0) { error_set(error, lex, "real number overflow"); goto out; } |