diff --git a/test/core/json/json_test.c b/test/core/json/json_test.c
index 15019913da3795c4fbbf485c6847923decdece35..f16494edf6157f6d6de6d29902dc0ff6acbd36aa 100644
--- a/test/core/json/json_test.c
+++ b/test/core/json/json_test.c
@@ -160,7 +160,7 @@ static void test_pairs() {
 }
 
 static void test_atypical() {
-  char *scratchpad = gpr_strdup("[[],[]]");
+  char *scratchpad = gpr_strdup("[[],[],[]]");
   grpc_json *json = grpc_json_parse_string(scratchpad);
   grpc_json *brother;
 
@@ -168,7 +168,8 @@ static void test_atypical() {
   GPR_ASSERT(json->child);
   brother = json->child->next;
   grpc_json_destroy(json->child);
-  json->child = brother;
+  GPR_ASSERT(json->child == brother);
+  grpc_json_destroy(json->child->next);
   grpc_json_destroy(json);
   gpr_free(scratchpad);
 }