From e4e865f0c08485d26562f91071169880b0feab4f Mon Sep 17 00:00:00 2001
From: Craig Tiller <ctiller@google.com>
Date: Fri, 10 Jun 2016 00:29:59 -0700
Subject: [PATCH] Fix fuzzing detected bug

---
 src/core/ext/load_reporting/load_reporting.c  |   3 +-
 .../0e79b68aa8b9c336f0bbf9029928c53079711423  | Bin 0 -> 523 bytes
 .../1560af88445d6c1e8b1300047f33056dce198e02  | Bin 0 -> 405 bytes
 .../48caf755ddcc6c45d3416ba6ab44709f360eb82b  | Bin 0 -> 142 bytes
 .../7030cb2c62b289459e459bc54bd84c8d7e6f5a98  | Bin 0 -> 564 bytes
 .../81f8c545d77d93e6cb8239e9e4a4d7f8f8beeee9  | Bin 0 -> 853 bytes
 .../b7d02f4d12cd0b5442a04675e69f98fbdabc775a  | Bin 0 -> 251 bytes
 .../ce6a90cb7d395fea7aa54ee9f7061cc45f5494d7  | Bin 0 -> 560 bytes
 ...h-482e9bdce0e13df2a77eef75a1c07d38ee28f4ab | Bin 0 -> 232 bytes
 .../e94428d78182060ff6309dd626cf6b3ebeed88d6  | Bin 0 -> 550 bytes
 tools/run_tests/tests.json                    | 153 ++++++++++++++++++
 11 files changed, 155 insertions(+), 1 deletion(-)
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/0e79b68aa8b9c336f0bbf9029928c53079711423
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/1560af88445d6c1e8b1300047f33056dce198e02
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/48caf755ddcc6c45d3416ba6ab44709f360eb82b
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/7030cb2c62b289459e459bc54bd84c8d7e6f5a98
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/81f8c545d77d93e6cb8239e9e4a4d7f8f8beeee9
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/b7d02f4d12cd0b5442a04675e69f98fbdabc775a
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/ce6a90cb7d395fea7aa54ee9f7061cc45f5494d7
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/crash-482e9bdce0e13df2a77eef75a1c07d38ee28f4ab
 create mode 100644 test/core/end2end/fuzzers/api_fuzzer_corpus/e94428d78182060ff6309dd626cf6b3ebeed88d6

diff --git a/src/core/ext/load_reporting/load_reporting.c b/src/core/ext/load_reporting/load_reporting.c
index 60082dbaaa..9e4d32676f 100644
--- a/src/core/ext/load_reporting/load_reporting.c
+++ b/src/core/ext/load_reporting/load_reporting.c
@@ -76,7 +76,8 @@ static bool is_load_reporting_enabled(const grpc_channel_args *a) {
   if (a == NULL) return false;
   for (size_t i = 0; i < a->num_args; i++) {
     if (0 == strcmp(a->args[i].key, GRPC_ARG_ENABLE_LOAD_REPORTING)) {
-      return a->args[i].value.pointer.p != NULL;
+      return a->args[i].type == GRPC_ARG_POINTER &&
+             a->args[i].value.pointer.p != NULL;
     }
   }
   return false;
diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/0e79b68aa8b9c336f0bbf9029928c53079711423 b/test/core/end2end/fuzzers/api_fuzzer_corpus/0e79b68aa8b9c336f0bbf9029928c53079711423
new file mode 100644
index 0000000000000000000000000000000000000000..5b16d9d759a7a585141dedf8a7a2e125df2be281
GIT binary patch
literal 523
zcmZuuu}T9$5PiGEWiQH+QmmqZV1lL)w1~)ozaWTUah%DZ!5HJ*<qm93A^yu%HtB5q
z4V!D!%EAv==MoVGhb?Az-kW)|PshY5F|5<tWIkET>1O+*s$tU8qeDwU^FW(w76{C*
z!+_iiry7c(jU>Wp(I+1-5@8>2ww;{syA(3tv@HD;0OD1s?Q<UYIu}VY-sucRgCrV;
zG2KjP)T3}TxjGX`6i9!6p^D4VzbF^usCOAA(b<r~cyLR7>RtDR)6s_FM-md*^no#t
zY7W(1(xM}C^ePKZpwhs}3QnS3Ei;Xxj%BQ91E~3+I3CIXKBpucMOPGF%Qx|$KLKje
z)teT11)lZ(<o~}y3AhETP?6>(u_i=q^g7KNCmUvc3wPcdQOx>zv93+U1PAO-iwH`P
zr8ArcZMXKss;EuHuDM&KS^8Zx!%<@)XcpwVN6mYgV{&*Us)=S`)l-*k=8K_w0%j=}
OIXIun1~Y}O1-<~7>5*vw

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/1560af88445d6c1e8b1300047f33056dce198e02 b/test/core/end2end/fuzzers/api_fuzzer_corpus/1560af88445d6c1e8b1300047f33056dce198e02
new file mode 100644
index 0000000000000000000000000000000000000000..008dcac29ab7ef5256d670e4bd87d8f62a02fb39
GIT binary patch
literal 405
zcmXX?u};H441IShr%Qo~nJE<#&<rhNEJGOCE9NMKYX{mCIqe1ZASxupmt<n;fW*RY
zuw((mComjNTT7PgXZ!i-$;^;71pVfuRC&v2P4+n821<<RHtA+2nWon<-A8lYjYcM&
z!F`gIz-m5;?;@&qQj^T0t2nut4u{bsTTc^{X7dcq+=P76TE8G43dX%KOIw!h-y=Z}
zz$2W7c)o<7K=z7CI;RI+sZ922_|9nibWT`BvxMkx$(HKm&U~@rIfM<JAUKYo$%RDa
zV;ehCtWQKyl^y81tIGy<zfGKx{8&knJtdtv2u}vx1u>$vtz7`liYkWK$hKkN{`TKV
zRC|SX8;~s{_QKY-$sfi1OjI^}PkYO-JY^34$0<;i@H7U8wZ;X53Jml~m$(4*a6HYE
I*%%&{|2JKGQvd(}

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/48caf755ddcc6c45d3416ba6ab44709f360eb82b b/test/core/end2end/fuzzers/api_fuzzer_corpus/48caf755ddcc6c45d3416ba6ab44709f360eb82b
new file mode 100644
index 0000000000000000000000000000000000000000..f29e9a7983b7dfec60bd5f39faa2098a6df7e798
GIT binary patch
literal 142
zcmW;E!3n}Z5Czaba~Q^mslk)cOTY>&!V<#ZO=K3c4J-(jU=L}+QWmUZ9r92A@c(1!
zvR!=Ueh)!2jS6zG{CqY)o<Ma0ZvL3Y$?oZyFp!rQnu5Np*O3QF=Cc}0Uhln>`pzqb
cNM|j)GeAKxw!1^rvS355sD%)|#!f%LA9ZOXlmGw#

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/7030cb2c62b289459e459bc54bd84c8d7e6f5a98 b/test/core/end2end/fuzzers/api_fuzzer_corpus/7030cb2c62b289459e459bc54bd84c8d7e6f5a98
new file mode 100644
index 0000000000000000000000000000000000000000..035f23e8997040ba16d2c00fd695843087186f9f
GIT binary patch
literal 564
zcmZ`$u}T9$5PiGovKQsB6sxEZ%%Ld+n}{6v3xWt1$C(Uz7?U`6xqz)H#Luw5$|jwS
zzhRR`tt|Y2buLj+&}EC+o%d$uz0oOgP7Ld`HbbAR<$NP}t7w?~_+Z~sSliR4G7JUg
zS7AWziE|Cb&_)8`)ajiMC2(@&Ar%fc0w;Htl;>ygodAfJp|(!B-)fv?S%15cbdxNJ
zJ5frP1M0RY>JBbWWUk#%n)qb_vRwB6!8z;4t@9|0PdXH($rZJ!)oTl<p$(<?BqXx=
zEn|8r1yplh`=&m0^eid|P<iM?M>%&;DI<-$Di*M)4WOot(q2az@F`_cH@={#Cth*V
z9so;H)f-KUIe6Cl761JUCEz-&!kiTUB5I>oX}o^4W>z<G?Y$7CtRH7`Z7!Q|!0u=g
zLkV)~!A}GJGc6ATxAMShvNV#t&b*Ua`c-tn(fVxYaaime)NW)JQ@|@xHPk|@9-3^2
VzHB}aFiUz;fQyl+94j;}@Bu*#qR0RM

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/81f8c545d77d93e6cb8239e9e4a4d7f8f8beeee9 b/test/core/end2end/fuzzers/api_fuzzer_corpus/81f8c545d77d93e6cb8239e9e4a4d7f8f8beeee9
new file mode 100644
index 0000000000000000000000000000000000000000..a16874c54152145ac26d0ab1bc1a079f84dfa7dd
GIT binary patch
literal 853
zcmbV~F>ljA6vzK}YES2YqK=5Ep&}&_7y%NMijWasA)-QJu-xRSwMf(O>^KrDmWq)0
z8f>0evUTBWuy_H)$iTpGJlknS+e}y<-r4Wnz5D&1PKYyNSf{m_x5--0?(|(t!(^`p
z&n*Srr`ojUfuyxJVL<LHXBvv3jRaEDqhGw&1X8^x)$%UaSAPJ+H=ynv@O0=Ors?#N
zA5Y>mj>cg^Z)P+ZQaG6%?cZilAP2OYwzxX`yyl^QIE{v{!!+6-Q<%hWX+*>0k=(=A
zhLX=DMP#!N&lvU7Dxh}Pb=&mjj=sqiXHZ$-<PuJveyfT!%1vCub!`AupOhqHIe`x-
z4JXkNg~tMl<IxP*kX^mJEY{#z??Sx#E0iSnU=`M6^Rq&2bcYsOFK?O7UA*(Y6D6#_
zY&RORN(1mDFC!?)tlV%G^xe%<R^>)+e=osEp8jE=SBW$tLQKxvmrUvvDr+sx#VajW
z5&Pn%W?XcBZY$1#6F3X?@r6u7U*FG5?VKI_p8>$pR>N}<6gz`Y?*)@V0Z+QGrmzcj
zy34j+JeKT#jjcD9S3q7eZBW@uOwW=2Ib&LnZN*ubI<EFZ$%W9p*xrLdciCR<Su8}W
NC#^}6m1$T2e*q#k?wJ4p

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/b7d02f4d12cd0b5442a04675e69f98fbdabc775a b/test/core/end2end/fuzzers/api_fuzzer_corpus/b7d02f4d12cd0b5442a04675e69f98fbdabc775a
new file mode 100644
index 0000000000000000000000000000000000000000..6f1edf58514c4ea90ef58269adba6a5e37999b8d
GIT binary patch
literal 251
zcmXYrv1$TQ5Jm4BmdA6W3+XJiF=h+>0@?gQijZ0s86;p98I!lzF9?2$uvPvbUHY_X
zwn>psknl23GSl3Fd(WNg)wHZC-hg&2o&_$Dtux0?{4~Gl2`yYPuxVYen6+$Iv#mTm
zm$F~JYGzrkxq5-8Yy=Aq;t57THqwSLo&AhJb_%@717PBza8e={YX1*@scgqT=Ds;l
za3>G*{-~s!=1muZdzg{s-5ZZ>)3r5!_~V`6GHDCLzh}zqZGvyjAx}em0o@2!=u;AH
O33{%l?Yc0ENbm=U!$aNx

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/ce6a90cb7d395fea7aa54ee9f7061cc45f5494d7 b/test/core/end2end/fuzzers/api_fuzzer_corpus/ce6a90cb7d395fea7aa54ee9f7061cc45f5494d7
new file mode 100644
index 0000000000000000000000000000000000000000..c5c9c27938380110a5f3cd2ea7b65081d71fe631
GIT binary patch
literal 560
zcmZuuJ!>055PiEi%bsiwl_r&JgOG%+!eAE);UIs(U<@gavou&D`tscA4$|fd<NtD1
z8g*{+H{4v~q)L$=u$h&NvBAq0vpe%<-n^$%;+z=PX>E#-tmVAZ``gek`PYjtmZJ7&
zZ5l-+Wnl{j<Q_TKPz-G(5KNc;@#QuU^kt{#<UYS8QG}*z=_LUW??av3@N(E6XW8<!
zKbcRmWE!V*yQ2A!;`wTJEtDvd{^6Dt`_Zo;<7G1Z7H7%zl;U*qoklcVj0DryhSHxT
zAhP*AV{;l6)Zl{_9)+VPS#SlFM^097a(WFPY1A$3Vow`DZ3d<3R0i-3W$`?jQM?eD
zcrsc6P3anxb+v=Q25;i`f1#wf3#+gr%{{OwKyCB^t&gq_&A~B#1iy(=*1xvv+FVR<
zz^AfKprq0}!+F$mA0JrN%~I^zxaG~#e}pp}9c>A%qw4IUeJ68Fg}_&}(T=Qo7_cou
nG4x!DS<-a{u1eWpqt;qsU;!_=5t(Efd0jkRVa}4OO9lJ~aGIO*

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/crash-482e9bdce0e13df2a77eef75a1c07d38ee28f4ab b/test/core/end2end/fuzzers/api_fuzzer_corpus/crash-482e9bdce0e13df2a77eef75a1c07d38ee28f4ab
new file mode 100644
index 0000000000000000000000000000000000000000..b83e382f18c755967e343e96db1cac2b99f4ba4a
GIT binary patch
literal 232
zcmXAjF-k*G5Jm3{pU2Bjd|;O{Hln|XosCG`frVrNAr4UpKVg!*w}B6WOA&sR9b^r*
zHoviO4dFS)JIyWbxpU9wFSELqC3quxD+-_4rD^cuHC|Pj;Ziu0$>lw}GEGDyhY=hk
zlUb00okr0isJr_#G>HEv0b1yKK3=Y7&noMcZeQ!giTpCMz4)QW<_+0@M9^VsO%>lX
zUC#b#%uY6YVb^qR5+C0m6epD}NRF9<yH5Gr-t0iAN}B>kH$oo+F8-1QdcJ1^>_FC1
F;1_CjKkNVi

literal 0
HcmV?d00001

diff --git a/test/core/end2end/fuzzers/api_fuzzer_corpus/e94428d78182060ff6309dd626cf6b3ebeed88d6 b/test/core/end2end/fuzzers/api_fuzzer_corpus/e94428d78182060ff6309dd626cf6b3ebeed88d6
new file mode 100644
index 0000000000000000000000000000000000000000..570de0eef1aed67f31e64c06e9d740b9af4cd172
GIT binary patch
literal 550
zcmZuuJ!>056r5eGWluJT%aBU4L0G~T*kBh5;eJFw1Y8_v=^+VAXZhV1aT^sT|K+MQ
z>eS?Kq`4+><-$K;{d6*cfR`<1ci+4>v!fH@oEX+=Z3>^P<@}`g+|)4n^)yYF=lHBm
zvk0WjZ^3}vZ_YIoLmL6Y>Cy`icR<*~lb)0Pc9w_2H(g8r9suGGP-hcfrlbD!BJD3{
z@hpwzVM6yA#Ul#iY;hx!D3JdCP8GMHArxV3HT9><XmlH<(aoH~WcEN~8r_YB)7OTQ
zpClx*`42|DnkCerp+!gG=#Lo8pz^?p1t+W5+#-#tg?$`o1E_jXlFVfQPbdxJXhGqf
zd=t;c8E`0Fy;W82!L#0f`2AZbDel55?A5U5X`|b;KK^=S+Nb#L{Uu6R|Ju2=xn$sg
zPpc||lFDr`oCm#z`?z6M9j+v<I<0M3`bjjy(eX~uIw&u{bRK1<DdCwnGx9(2IO1<%
mCV_|1gyIy^wS!Jz)n>r9@GS*b(uajvmEdwE=GF=W3%mjhC!7)h

literal 0
HcmV?d00001

diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index 6624e399d4..07ab7d6f90 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -27495,6 +27495,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/0e79b68aa8b9c336f0bbf9029928c53079711423"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/0ea509d249ae28faba8980aacb972c7ea28d3fd5"
@@ -27954,6 +27971,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/1560af88445d6c1e8b1300047f33056dce198e02"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/157586c7c0ba8fd0dc9bfc2426229a7da934cec2"
@@ -31915,6 +31949,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/48caf755ddcc6c45d3416ba6ab44709f360eb82b"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/48f56289592da153b3c50bcc26ad6d4d3a7e443b"
@@ -34737,6 +34788,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/7030cb2c62b289459e459bc54bd84c8d7e6f5a98"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/705c87b99197c87eb2ed148f8b3fdc60f8616f15"
@@ -36063,6 +36131,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/81f8c545d77d93e6cb8239e9e4a4d7f8f8beeee9"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/820d5ba2e9d91563dae39a1b02833fbef1e6d8f1"
@@ -39684,6 +39769,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/b7d02f4d12cd0b5442a04675e69f98fbdabc775a"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/b7f282fbd77193d822df9c8156370398e1fd099c"
@@ -41554,6 +41656,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/ce6a90cb7d395fea7aa54ee9f7061cc45f5494d7"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/ceecce905981d8291a79fe32f89e8be688dfee7e"
@@ -41724,6 +41843,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-482e9bdce0e13df2a77eef75a1c07d38ee28f4ab"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/crash-4ae4941b4c3f857966a0e3c05f789a0a5ae15bbf"
@@ -44121,6 +44257,23 @@
     ], 
     "uses_polling": false
   }, 
+  {
+    "args": [
+      "test/core/end2end/fuzzers/api_fuzzer_corpus/e94428d78182060ff6309dd626cf6b3ebeed88d6"
+    ], 
+    "ci_platforms": [
+      "linux"
+    ], 
+    "cpu_cost": 0.1, 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "api_fuzzer_one_entry", 
+    "platforms": [
+      "linux"
+    ], 
+    "uses_polling": false
+  }, 
   {
     "args": [
       "test/core/end2end/fuzzers/api_fuzzer_corpus/ea2cf809383d8725bec1b44ab774f04b3e6d5ae5"
-- 
GitLab