json_object.c:set errno in json_object_get_double()

closes #422
This commit is contained in:
andy5995
2018-11-26 21:12:06 -06:00
parent 7539ab2d2e
commit 506a32d4ab
2 changed files with 10 additions and 3 deletions

View File

@@ -951,7 +951,10 @@ double json_object_get_double(const struct json_object *jso)
/* if conversion stopped at the first character, return 0.0 */
if (errPtr == get_string_component(jso))
return 0.0;
{
errno = EINVAL;
return 0.0;
}
/*
* Check that the conversion terminated on something sensible
@@ -959,7 +962,10 @@ double json_object_get_double(const struct json_object *jso)
* For example, { "pay" : 123AB } would parse as 123.
*/
if (*errPtr != '\0')
return 0.0;
{
errno = EINVAL;
return 0.0;
}
/*
* If strtod encounters a string which would exceed the
@@ -977,6 +983,7 @@ double json_object_get_double(const struct json_object *jso)
cdouble = 0.0;
return cdouble;
default:
errno = EINVAL;
return 0.0;
}
}

View File

@@ -122,7 +122,7 @@ const char *json_tokener_error_desc(enum json_tokener_error jerr);
* When parsing a JSON string in pieces, if the tokener is in the middle
* of parsing this will return json_tokener_continue.
*
* See also json_tokener_error_desc().
* @see json_tokener_error_desc().
*/
JSON_EXPORT enum json_tokener_error json_tokener_get_error(struct json_tokener *tok);