From 959b6f52cda3555a92e8a7c52f213560960ce614 Mon Sep 17 00:00:00 2001
From: "Nicolas \"Pixel\" Noble" <pixel@nobis-crew.org>
Date: Fri, 1 Apr 2016 00:53:57 +0200
Subject: [PATCH] Fixing another memory leak.

---
 src/core/lib/json/json_reader.c | 4 +++-
 test/core/json/json_test.c      | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/core/lib/json/json_reader.c b/src/core/lib/json/json_reader.c
index 098e089eed..9e18135b32 100644
--- a/src/core/lib/json/json_reader.c
+++ b/src/core/lib/json/json_reader.c
@@ -202,8 +202,10 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
               }
               if (reader->in_object) {
                 reader->state = GRPC_JSON_STATE_OBJECT_KEY_BEGIN;
-              } else {
+              } else if (reader->in_array) {
                 reader->state = GRPC_JSON_STATE_VALUE_BEGIN;
+              } else {
+                return GRPC_JSON_PARSE_ERROR;
               }
             } else {
               if (reader->depth-- == 0) return GRPC_JSON_PARSE_ERROR;
diff --git a/test/core/json/json_test.c b/test/core/json/json_test.c
index 735ff4c853..7ea5caca5b 100644
--- a/test/core/json/json_test.c
+++ b/test/core/json/json_test.c
@@ -90,6 +90,7 @@ static testing_pair testing_pairs[] = {
     {"{\"foo\": bar\"x\"}", NULL},
     {"fals", NULL},
     {"0,0 ", NULL},
+    {"\"foo\",[]", NULL},
     /* Testing unterminated string. */
     {"\"\\x", NULL},
     /* Testing invalid UTF-16 number. */
-- 
GitLab