From 506a32d4ab2acbdf2315719c2ae74c40c616670b Mon Sep 17 00:00:00 2001 From: andy5995 Date: Mon, 26 Nov 2018 21:12:06 -0600 Subject: [PATCH] json_object.c:set errno in json_object_get_double() closes #422 --- json_object.c | 11 +++++++++-- json_tokener.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) 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); -- 2.40.0