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: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=506a32d4ab2acbdf2315719c2ae74c40c616670b;p=json-c json_object.c:set errno in json_object_get_double() closes #422 --- diff --git a/json_object.c b/json_object.c index 8a86bc6..4b2b014 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 8bcc6b6..4801c65 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);