]> granicus.if.org Git - json-c/commitdiff
json_object.c:set errno in json_object_get_double()
authorandy5995 <andy400-dev@yahoo.com>
Tue, 27 Nov 2018 03:12:06 +0000 (21:12 -0600)
committerandy5995 <andy400-dev@yahoo.com>
Tue, 27 Nov 2018 03:12:06 +0000 (21:12 -0600)
closes #422

json_object.c
json_tokener.h

index 8a86bc6ea09a5e76995beb54c04b0af0961acfed..4b2b014b7329e3d5039da7dbd2c696fdd422b487 100644 (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;
   }
 }
index 8bcc6b6f6216958f2ed1a3f0289e264d93ec35b2..4801c657c3075974b1f0514f37e363072736c07e 100644 (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);