From: andy5995 Date: Tue, 27 Nov 2018 03:12:06 +0000 (-0600) Subject: json_object.c:set errno in json_object_get_double() X-Git-Tag: json-c-0.14-20200419~105^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F461%2Fhead;p=thirdparty%2Fjson-c.git json_object.c:set errno in json_object_get_double() closes #422 --- diff --git a/json_object.c b/json_object.c index 8a86bc6e..4b2b014b 100644 --- a/json_object.c +++ b/json_object.c @@ -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; } } diff --git a/json_tokener.h b/json_tokener.h index 8bcc6b6f..4801c657 100644 --- a/json_tokener.h +++ b/json_tokener.h @@ -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);