From aab6992c006be6fb80df73fd9f218365099c016d Mon Sep 17 00:00:00 2001
From: yang-g <yangg@google.com>
Date: Tue, 28 Mar 2017 22:58:56 -0700
Subject: [PATCH] Remove call from sibling list when it is not first child.

---
 src/core/lib/surface/call.c                   |   4 +--
 .../clusterfuzz-testcase-5965570207907840     | Bin 0 -> 1883 bytes
 tools/run_tests/generated/tests.json          |  23 ++++++++++++++++++
 3 files changed, 25 insertions(+), 2 deletions(-)
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/clusterfuzz-testcase-5965570207907840

diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c
index 895a8a3b06..4f5e815dab 100644
--- a/src/core/lib/surface/call.c
+++ b/src/core/lib/surface/call.c
@@ -504,9 +504,9 @@ void grpc_call_destroy(grpc_call *c) {
       if (c == parent->first_child) {
         parent->first_child = NULL;
       }
-      c->sibling_prev->sibling_next = c->sibling_next;
-      c->sibling_next->sibling_prev = c->sibling_prev;
     }
+    c->sibling_prev->sibling_next = c->sibling_next;
+    c->sibling_next->sibling_prev = c->sibling_prev;
     gpr_mu_unlock(&parent->child_list_mu);
     GRPC_CALL_INTERNAL_UNREF(&exec_ctx, parent, "child");
   }
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/clusterfuzz-testcase-5965570207907840 b/test/core/end2end/fuzzers/api_fuzzer_corpus/clusterfuzz-testcase-5965570207907840
new file mode 100644
index 0000000000000000000000000000000000000000..a58dc7b2442fc21b5bbdf2de959c4e2625408e6b
GIT binary patch
literal 1883
zcmZQ7PAw`+En;9`Vc=rWXJX?jPqi;9W8z_AD^KOHE-GW<V=Mok%2C9`5p2f922#wC
z3YLRNrRC>?#8Mg4iwctUii>mNOA?FHQ%mCW64&OY&d)DPEh@@PNoDB&|NnozFgFh)
z0|Nu&|NjgOj0}vwIvE(ac^KIl7`Q+-l%YBWZ1SG6)FP14aJ>xF04RQh_ygns{9eRs
zF<ukFJ}D~0YXFiYUb8@fO=JWh8HvQiFkOs@=ta_xmx*CGj<kc<5C#Tfje$fRG<dNj
zLG0GxH63agcAbPp@tTb*?(iCm*F+Lsi`Oh%t|LEOM^hGZ@+Up6n80OfN@`kSX--Le
zGNhozUQ&aL&Ww_h0_-KZ1_vao{09}q#i+$}ZfZQJlm^N4|K`R9mSYp7mKZYw0|UY=
zNF~9{$Y9OFz{0@5m|g^PIgTnQFA?f~a4m!I8hT}ftg3~ffq{duh(m$lQ47O=Mh3<r
z1qL<-Pz_MV#K2g@z{J47*s>O+B%>s;09=<rwL=04?nnl(BN-T&*uZreA6q#zk|B8p
E0A4v}Jpcdz

literal 0
HcmV?d00001

diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json
index 87142f585c..ca5d7a7a33 100644
--- a/tools/run_tests/generated/tests.json
+++ b/tools/run_tests/generated/tests.json
@@ -82088,6 +82088,29 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/clusterfuzz-testcase-5965570207907840"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [
+      "tsan"
+    ], 
+    "exclude_iomgrs": [
+      "uv"
+    ], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "mac", 
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/clusterfuzz-testcase-6520142139752448"
-- 
GitLab