summaryrefslogtreecommitdiff
path: root/json.c
diff options
context:
space:
mode:
authorChristian Gagneraud <chris@techworks.ie>2012-06-06 13:33:39 +0100
committerChristian Gagneraud <chris@techworks.ie>2012-06-20 10:05:41 +0100
commit6f34d11aae04a9a9d47c3a4f6af3d5a55774b53e (patch)
treeac75981344656674334d6f0a00252e75567305b0 /json.c
parenta307361e9942df5be76c1498007c296f6ea5b1fd (diff)
downloadgpsd-6f34d11aae04a9a9d47c3a4f6af3d5a55774b53e.tar.gz
json parser: fix empty array bug
Diffstat (limited to 'json.c')
-rw-r--r--json.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/json.c b/json.c
index 3f3278f7..5550f228 100644
--- a/json.c
+++ b/json.c
@@ -529,6 +529,13 @@ int json_read_array(const char *cp, const struct json_array_t *arr,
tp = arr->arr.strings.store;
arrcount = 0;
+
+ /* Check for empty array */
+ while (isspace(*cp))
+ cp++;
+ if (*cp == ']')
+ goto breakout;
+
for (offset = 0; offset < arr->maxlen; offset++) {
json_debug_trace((1, "Looking at %s\n", cp));
switch (arr->element_type) {