From c651473311637c703df8fae4b2ea063909fdc43f Mon Sep 17 00:00:00 2001 From: 7AC Date: Tue, 14 Jun 2011 00:29:01 -0700 Subject: added errno resetting before setting/checking it in yajl_do_parse() --- src/yajl_parser.c | 2 ++ 1 file changed, 2 insertions(+) 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) -- cgit v1.2.1