diff options
author | Lloyd Hilaiel <lloyd@hilaiel.com> | 2011-12-19 15:04:22 -0800 |
---|---|---|
committer | Lloyd Hilaiel <lloyd@hilaiel.com> | 2011-12-19 15:04:22 -0800 |
commit | 0b89371ec06dbe644170545bac3882f218f4df3e (patch) | |
tree | e84572720da82cc4c1e106ff82d28c5ac6727a1b | |
parent | 342b6059b5aa37001738babd088dcce7b2f8ea3a (diff) | |
parent | c651473311637c703df8fae4b2ea063909fdc43f (diff) | |
download | yajl-0b89371ec06dbe644170545bac3882f218f4df3e.tar.gz |
Merge pull request #42 from 7AC/master
errno not being reset
-rw-r--r-- | src/yajl_parser.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/yajl_parser.c b/src/yajl_parser.c index 3903b38..2cf8a07 100644 --- a/src/yajl_parser.c +++ b/src/yajl_parser.c @@ -279,6 +279,7 @@ yajl_do_parse(yajl_handle hand, const unsigned char * jsonText, hand->ctx,(const char *) buf, bufLen)); } else if (hand->callbacks->yajl_integer) { long long int i = 0; + errno = 0; i = yajl_parse_integer(buf, bufLen); if ((i == LLONG_MIN || i == LLONG_MAX) && errno == ERANGE) @@ -306,6 +307,7 @@ yajl_do_parse(yajl_handle hand, const unsigned char * jsonText, yajl_buf_clear(hand->decodeBuf); yajl_buf_append(hand->decodeBuf, buf, bufLen); buf = yajl_buf_data(hand->decodeBuf); + errno = 0; d = strtod((char *) buf, NULL); if ((d == HUGE_VAL || d == -HUGE_VAL) && errno == ERANGE) |