diff options
author | 7AC <giusva@gmail.com> | 2011-06-14 15:29:01 +0800 |
---|---|---|
committer | Philippe Lague-Morin <philippe@screenshot.ca> | 2011-08-19 21:24:58 +0800 |
commit | a3b992b9f3dd4147ac1ed2789978ca3056b4f714 (patch) | |
tree | a6e37190101c42e2aeb992071612367d0d9a371b | |
parent | 48c02bf339cbf056d9f202573d57a3d0a95deef2 (diff) | |
download | yajl-a3b992b9f3dd4147ac1ed2789978ca3056b4f714.tar.gz |
added errno resetting before setting/checking it in yajl_do_parse()
-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) |