summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLloyd Hilaiel <lloyd@hilaiel.com>2011-12-19 15:04:22 -0800
committerLloyd Hilaiel <lloyd@hilaiel.com>2011-12-19 15:04:22 -0800
commit0b89371ec06dbe644170545bac3882f218f4df3e (patch)
treee84572720da82cc4c1e106ff82d28c5ac6727a1b
parent342b6059b5aa37001738babd088dcce7b2f8ea3a (diff)
parentc651473311637c703df8fae4b2ea063909fdc43f (diff)
downloadyajl-0b89371ec06dbe644170545bac3882f218f4df3e.tar.gz
Merge pull request #42 from 7AC/master
errno not being reset
-rw-r--r--src/yajl_parser.c2
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)