Parse subnormal numbers correctly

Fixes #202.
This commit is contained in:
Petri Lehtinen 2014-08-27 07:51:08 +03:00
parent d4a7de7c11
commit fa20e80860
3 changed files with 4 additions and 1 deletions

View File

@ -2,6 +2,7 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include "jansson_private.h"
#include "strbuffer.h"
@ -69,7 +70,7 @@ int jsonp_strtod(strbuffer_t *strbuffer, double *out)
value = strtod(strbuffer->value, &end);
assert(end == strbuffer->value + strbuffer->length);
if(errno == ERANGE && value != 0) {
if((value == HUGE_VAL || value == -HUGE_VAL) && errno == ERANGE) {
/* Overflow */
return -1;
}

View File

@ -0,0 +1 @@
[1.8011670033376514e-308]

View File

@ -0,0 +1 @@
[1.8011670033376514e-308]