[PATCH 09/10] Add fuzzer-generated tests

Daniel Axtens dja at axtens.net
Wed Jun 28 17:48:51 AEST 2017


This is the set of tests I generated while fuzzing the parser.

Add them so we don't regress.

Signed-off-by: Daniel Axtens <dja at axtens.net>
---
 patchwork/tests/__init__.py                      |   1 +
 patchwork/tests/fuzztests/base64err.mbox         |  46 ++++++++
 patchwork/tests/fuzztests/charset.mbox           | 131 +++++++++++++++++++++++
 patchwork/tests/fuzztests/codec-null.mbox        | Bin 0 -> 8192 bytes
 patchwork/tests/fuzztests/date-oserror.mbox      | Bin 0 -> 8209 bytes
 patchwork/tests/fuzztests/date-too-long.mbox     | Bin 0 -> 1828 bytes
 patchwork/tests/fuzztests/date.mbox              |  44 ++++++++
 patchwork/tests/fuzztests/dateheader.mbox        | Bin 0 -> 580 bytes
 patchwork/tests/fuzztests/earlyfail.mbox         | Bin 0 -> 1712 bytes
 patchwork/tests/fuzztests/msgid-len.mbox         | Bin 0 -> 1809 bytes
 patchwork/tests/fuzztests/msgid-len2.mbox        |  37 +++++++
 patchwork/tests/fuzztests/msgidheader.mbox       | 131 +++++++++++++++++++++++
 patchwork/tests/fuzztests/refshdr.mbox           | Bin 0 -> 816 bytes
 patchwork/tests/fuzztests/unknown-encoding.mbox  | Bin 0 -> 1751 bytes
 patchwork/tests/fuzztests/value2.mbox            | Bin 0 -> 1598 bytes
 patchwork/tests/fuzztests/year-out-of-range.mbox | Bin 0 -> 1660 bytes
 patchwork/tests/test_parser.py                   |  57 +++++++++-
 17 files changed, 444 insertions(+), 3 deletions(-)
 create mode 100644 patchwork/tests/fuzztests/base64err.mbox
 create mode 100644 patchwork/tests/fuzztests/charset.mbox
 create mode 100644 patchwork/tests/fuzztests/codec-null.mbox
 create mode 100644 patchwork/tests/fuzztests/date-oserror.mbox
 create mode 100644 patchwork/tests/fuzztests/date-too-long.mbox
 create mode 100644 patchwork/tests/fuzztests/date.mbox
 create mode 100644 patchwork/tests/fuzztests/dateheader.mbox
 create mode 100644 patchwork/tests/fuzztests/earlyfail.mbox
 create mode 100644 patchwork/tests/fuzztests/msgid-len.mbox
 create mode 100644 patchwork/tests/fuzztests/msgid-len2.mbox
 create mode 100644 patchwork/tests/fuzztests/msgidheader.mbox
 create mode 100644 patchwork/tests/fuzztests/refshdr.mbox
 create mode 100644 patchwork/tests/fuzztests/unknown-encoding.mbox
 create mode 100644 patchwork/tests/fuzztests/value2.mbox
 create mode 100644 patchwork/tests/fuzztests/year-out-of-range.mbox

diff --git a/patchwork/tests/__init__.py b/patchwork/tests/__init__.py
index 8bdf1a6746db..cbe2b5d081dc 100644
--- a/patchwork/tests/__init__.py
+++ b/patchwork/tests/__init__.py
@@ -21,3 +21,4 @@ import os
 
 TEST_MAIL_DIR = os.path.join(os.path.dirname(__file__), 'mail')
 TEST_PATCH_DIR = os.path.join(os.path.dirname(__file__), 'patches')
+TEST_FUZZ_DIR = os.path.join(os.path.dirname(__file__), 'fuzztests')
diff --git a/patchwork/tests/fuzztests/base64err.mbox b/patchwork/tests/fuzztests/base64err.mbox
new file mode 100644
index 000000000000..9756d5c9c44e
--- /dev/null
+++ b/patchwork/tests/fuzztests/base64err.mbox
@@ -0,0 +1,46 @@
+From pat016
+Content-TCpe: text/plain; charset="utf-8"
+MIon: 1.0
+Content-Transfer-Encoding: 8bit
+Subject:: Up entry for B01X ARM
+From: =?utf-8?b?UmFmYcWCo alho Chehab <mchehab at osgIE1pxYJlY2tp?= <.com>
+X-: 913
+Message-Id: <1m>
+To: Fan Flli m>
+Cc: bcm-kist at broadcom.com,
+ =?UTF-8?q?Rafa=C5=82=20Mi=C5:82ecki?= <zajec5 at gmail.com>,
+ An Morton <akpm at linux-foundation.org>,
+ "David S. MilYer" <d F:*
+ 
+vemloft.net>,
+ Greg Kroah-Hartman <inuxfoundat„on.org>,
+ Mauro alho Chehab <mchehab at osg.samsung.com>,
+ Guenter Roeck <linux at roeck-us.net>, Jiri Slaby <cz>,
+ linux-kernel at vger.kernel.org ( list)
+Date:,  1 Jun 2016 22:00:54 +02
+Adh
+bci.
+
+>
+---
+ M++-
+(-)
+
+diff --ER@
+4
+--- a/ERS
++++ S
+@@ -2511,10 +2511,12 @@ F:*
+ 
+ BROURE
+ M:	>
++Mfał
+ L:g
++Lcom
+ S:	ed
+ 
+-F:
++F:i
+ F70*
+ 
+ B
diff --git a/patchwork/tests/fuzztests/charset.mbox b/patchwork/tests/fuzztests/charset.mbox
new file mode 100644
index 000000000000..a8a40c81f8d2
--- /dev/null
+++ b/patchwork/tests/fuzztests/charset.mbox
@@ -0,0 +1,131 @@
+Received: with ECARTIS (v1.0.0; list lin; Tue, 06 Dec 2011 01:49:42 +0100 (CET)
+ived: from mcom 337 O
+  om" -OK)
+    by eddi with ESMTP id SAth PT
+ >); Tue, 6 Dec 2011 9:37 +0100
+Received:m caexch.com (Not Verified[092.168.16.9]) by mail3.caviumnetworks.com with Mal (
+    id 00>; Mon, 05 Dec 2011 1604 -
+Received: from .caveonetworks.com ([192.168.16.9]) by caexch01.caveonetworks.com with M SMT
+   n, 5 Dec 2011 1636 -
+Received: from dd1.caveonetworks.com ([64.2.3.195]) by caexch01.caveonetworks.com over TLS red channel with Microsoft SMTPS790.4675);
+ Mon, 5 Dec 2011 9:35 -0800
+Message-ID: <m>
+Date:on, 05 Dec 2011 16:49:35 -0800
+From:avid Daney <om>
+nt: lla/5.0 (X11; U; Linux x86_64; en-US; rv5) Gecko/20101027 Fedora/3.0.10-1.fc12 T0
+MIon: 1.0
+To: tils <big>
+CC:  s <l>,
+ l Lauss >,
+ n MIPS <>
+Subject: [Patch]: Fix ld p38 Fres on m.
+Content-Type: multipart/mixed;
+ boundary="------------080709040708040308010506"
+X-inalArrivalTime: 06 Dec 2011 00:49:35.0825 (UTC) FILETIME=[ECF8DC10:01CCB3B0]
+Reh: <om>
+o: <tis -s ls"> (uid 0)
+cpt:g
+Or: rfrg
+Xn: 3
+X-eon: tis .0
+Sr: lorg
+o: lorg
+r: dm
+Pr: bulk
+Xt: ls
+
+Tat.
+--------------080709040708040308010506
+Content-Type: text/plain; charset=ISO-8859-1;mat=ed
+Content-Transfer-Encoding: 7bit
+
+e 
+S.
+
+T
+sym
+vere 
+rer 
+
+
+Sim 
+sag 
+P" 
+
+
+Ine 
+'s.
+
+ 
+ex.
+
+Tnu
+
+?
+
+2
+
+	*ld.
+n a
+t.
+	Set
+
+
+--------------080709040708040308010506
+Content-Type: text/plain;
+ ="dd"
+Content-Transfer-Encoding:t
+Con: at;
+ "
+
+Index: bfd.h
+===
+,v
+r
+difh
+--- bf
++++ bfd
+@@ -198,6 +198,8 @@try
+   u
+   
+    1;
+ */
++  u 1;
+ 
+  */
+ ;
+In.c
+===
+Rv
+re430
+nk.c
+--- bfd430
++++ 000
+@@ -1946,6 +1946,9 @@ _bct
+ r)
+ 
+ 
++
++  E;
++
+   );
+ 
+   
+Ind
+===
+RCS,v
+r
+dif
+--- bfd96
++++ b0
+@@ -7260,6 +7260,7 @@ 
+ 	 bh;
+ 	   0;
+ 1;
++	  1;
+ 
+ 
+ ))
+
+--------------080709040708040308010506--
+
diff --git a/patchwork/tests/fuzztests/codec-null.mbox b/patchwork/tests/fuzztests/codec-null.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..e31b3f6958b0e28c70b88946a6f45ce046e85136
GIT binary patch
literal 8192
zcmdT}>vG#hmiAxc3HIknQadGEBG~|l3mHeTEz7Ysw&RtQ?Cf||s3y=LF$4hy7m3Qu
z?Cg8)!(_kHxR9dcs(33^v&&M6V5861=iaAJzb^6>Z4#NMc|CSbPu`MclW?Y%ITa3B
z!t{)jJgZbz4K8ojYD$&bRHJn&lk95>7qTc-_05;{qeqXTFO7F+?@k9lsiI8sY)a-(
zY-tObm9Z)Yr&*XsNj9I7H%ltxqMrR(h1HZkW~w^6wvNn^bwzldQlgadg=IS9DHUp!
zUn^3Zb((}pMOc)|<!o?VE{%7pEahAc&Y~$jO9wl`JfE**k`BXsb!=SbQ<AcHzE;`1
zu8KTMHp56A(Jz&XW%fKT=fhI2$~v3#{3D9wwOT#b|I<9KhG5A!38$1MS-lzDtU+@<
zSH*CticF=$yqF&`+mX7yH*Qe-X=odYd$Z_mlF^?QGMm%0Pss2}RxrS24YpyVcWf)z
zhfKS*)}io)FkZu?)8ByhHYuw{X${}QJ$a4|<MaW2Q&K`u6{S%75tVtk3}l+-VNj|p
z3SbnTAk#w0=vLb)sfLDek<2p{4e~f1%x- at RcQ3*v=JVVOZ6Ue{7po+y=vn!o#g2`^
zU|_%@v$;z1`P4A3O&T22wKeVa|CCDjPepi>WK~YpO-^fBg$o5q)~eWB3T$5jZ&?!N
z?r{<41)TCaQ8(~q`a&;G|Ej7Hy!L(LwIkMzs)ix`l`H~tWKx`@ilYWhMld2pDpeJN
zr92osF^njQV@#ZbMLB{|7_1F}E!gZ+Z;T|1)P`W1ne^P at a3)M?#)3>C-0_$>{4}a@
zcz8&kMt=UB2DUJdJUZkrmoQLPvPwc$Bo*>TTYpu~56Y^jLj)&er>Er-9?}fp-6AUJ
zDZVk5{GtL(!q*dn9zUMv&~RQ?>^@%`gdrW=2qyXlI=cSa7&Ig0k}y&(F{v3?7a$Gu
z6r+oZ^>}*uCioDXot~aHR(R6j0VG)0)d9XS!t%Hi!ScBNWLKVl6i0>*TiX2NGs$FX
zPw02gB$o?h1s!Yu6ek;nkXk5eG9l&px}=+h$`DbhlBMEA8o*LXs4#?GLuGhMGDAk!
z5|2YV%P6k1kVEH=_a(qhvZY3k=7n5!en|`2tcfJA40z2fRjVgQJh1>YG8S;KNSJ3)
zqG4yMx>4Y%^&FB}q at RDTRjq=}3Y(YanFVQi1<X80I;a-1qLsXzDS|u^rw>MHDU(&j
zBc)P?%qU4yHJ9nG$m<+Ig{{Rf-rZumEvrsZz_*8{Jro1m()`R+C~N2|A-SR~uOKCM
zNr<9=*!Vvg4Rf5TF|Wxzl;*sH1(~|Rp0wQR5_~~{C9-F?XN{gBX+d-rf03tAgU!^P
z)K5qKWL}pI*F<eFhZ$$LfzC?@Wf5Y%3cF+~^_$wZ4yxJ5v)6B51aHsYe}DCaW3~Mx
zF&%u-!68TNeF|08MMi_u_dmQk{po9CG- at U=Sw}TEu28Vh7vIo}^AB&%U+pFZ`b$sJ
zA+v=zLv-X|rbF$f^sAn||LMis?fbv={Iz;ztR#zboo)ul9VFD!J#HmU^OQ}oM-mru
zzCzIzRB{e7v7NuFQGo$HsSf_|@Nx{5Vsj5x)do at +FVZqULikW#MA+om_mWkeqL`p{
zq10*(qx7D^?!1%Fx2|E__l<3mwsv=ft}^RWb*n!;{Wm4-mY_2UzIR+>G}>psSAU7E
z9F^$bgDP1m-cRaGhf-0ms{|2$U<-OmZ~nA{ri!BV)@@)PfYY5R>{LAMn8bZgZ0I>*
zaY_jAGs}54E1qM9!- at 0D>Xs0xMY-lIqk|fCFftv|5hfwXoBAn|l|=OMu8P_<JKzUd
z%)=vHYtz%G_;LNj_)9M`m*6z3<Bz80U2VOD>39#0qwQGp8`3s~$-#@)J0WpI7eAbQ
zADqAVw<CzTC1T-Q!e at Aa!0Do)`(77VEI#-$gm1&8+R0EsUQFqq%m2u})J1?EV9jLt
zZlHH4U2K`#rMF?lrDe;-5ewT?5P5unXC(1mep?&_%-;;I-+JvgI>+t;^%i+vJ^zKv
zFr>f1W`K$xp|6VRe~#d5s2|s(CVPHGHCu=V(m;7$Z|DJ{ZB8D{Ri+9QMPE7I;Kx~=
zRW)6_`@j`D{Y#ya=@`PEIyhPR^yB3TSMOum_-^3te|`7<$B|y}b68E*d^%Z at jH2d2
zRSTg#%xDsYAe|ALAD at AYM7UIH&6{PrbBHeaNBK?m8Avo7-Su_)1Hf-2SG*_zP#u2`
zSSK*5=tf`|uVWCf_jYE5K`u6okG5|PZDHHOyCQ8g?3bLGa1`Z|B9?WE6R5z4K7M6h
z!H7N0m}%bSQH=wTUKR11;Iu2_pxtrZM!_`8ptB-|bFGY7TB{0Px4`yS21%LwzB36-
zDsg67L^9xH5aMZ-><#gTQK_X-RHb9ulY^5d{RD)aN)3%5qXwaQcN1Y at 9$$y6<{RhZ
z=9H#?mg?sKXQ at Qfc0U3*J|_*3A^-F1=2`vBHNHwQx=wp?Xd2a-5$1?D>>!j(Oox`&
zD{M^66rS`{&cg*iQCNhPDR9C8Qz>>I9<VL!xGBw1n=Jx8nk6kjc)PBk*r-?q%T*aH
zRLbWw{G`MRA<8 at t&^|!2sk4Zgpz9=3IdUeHm_)`}7VEsIuokV?>=kg8c8u^I^@k2r
zqb_Io$wMR;VM2v(x)WL at 2`oF43#h1dm9gc!S9J2>$Eisl&R$K)a;!0(z_d7Pn{<g>
z4SuKe9i5Q4pAmYPv6x)Z8(Bm*5=?V$nc`;x*_!{aE*VrOqtVVtq(_d7muEj*(Cf38
zm*(V+u!27#aR_%LCL>NIMlv;Gd|vv(v^{SU!hQRNT?Y%FpM7AjHpTSgGoHyGVY-$X
zEA#k at wu4YZJ7@&DG}+d!hhpQJBe8LIz`cnN at QViApE7L6L=;Lvr>OD1yU+n;3QJf$
zSH3Sm_~MVyr)SNCZAOmgxQ^|Zbp8^f9D%zZIzPcE<AYL6Tt7DD4j&UAv3dULLBfl(
zhu~ge^d8)QH|fC<69;fFA(oz^v|8;bRD#ZhzXxZz+h*78ddu{<6V`#?fP?b)#TsMO
zyf^A#)atoI><dc)wuiG#)*YHZdvIQiQS{8VEbx;ab$Ymax^u=RZ1@^R(u7_dI$rFE
z*c*!jrhh_gz*beJ9f#1rXkQu2EN#upgZ-yx)ft1;6OHYgf?nZ?C(&v5aB{w*6(Ga8
z>{(ClqO_rtb0~wUyjVuUADisn7`1yzP22UOs2RN at KRO_uV#T at Ua3UPf9$%rKBg5si
zU&3=C{f^2k;aHLA2kcmeGh4{50uWzO7z!P5 at I?+dcZ{`rM4w~g?tJBK5iu1XSfzRB
z{(JEjanIncu#kf8B8KSiuub^GF>8${%|Of2B#P{bM&ub%*fO5PX2+vzI&kn4wD0JW
zPrto7T<xlR`GB#JB#=$JlPn5eWCK$m8(6*It~G&rcWAp+LA!IXV8R*a5erKB*l(U!
zJ#Y4erQN0^4I`W}V76_sfUC{!jL(o`&C7#;j*0Nw0ffGUH&HVH?xFZIpuo0m?sr`Q
z_q{`jJY`7-l;0BaW3#nldCLKz>F-c-Lb^+do}A-q%H>L}f>7ej(socQHUdi#BByWA
zyX!gdCgvUvc%Mx;X<z*N#fjEHl{2ZuIz?>sq`t>~xYZ*95MB|p9>1k)-k<{+hS*1|
zU;qB=uf^fUVI8_#fQbhuxeH*4XxvC&-j*T!C(x`1C?Hg!&A^JVoF2pzp1lX+3g4BA
z1-QM~@~@ctEt%=ubpqe?tkCyjkm(h%JeE@|vvNC;2}eM<H7cqpg)T{x<QP#xW0U+D
zIUadFjVJs(_E3Y9?@(mX*yj=04sV5ru;f1vS0H9P8H6SXF-_0+#@nAEX5y#K2otns
zLPMA>!ZUkzOb&Np$-~8pUSvEbgehu&=4irPFh}SPyX21vbw%Vf)W$ZSc*rqG_h%pO
zSfbmdX?K%u!g7C;_9hI#yEN&&zt0fZppRSCjXfPC-|IUK6igY;G6UUMdh}n99_d?~
z*Epc2xQGcAj?^fX(N^Hnr{E)YkK&Et_IGQyX$zN!VO<p5{Vs13wBEUWK0_+zwgg`-
zaR;u<aSkxh<HMmjU!&ELXS<!c^hVy6U;!--oEo^J#YbxHx!tSy=f+H-Rgb<NC%L<+
z3;ne-KAyMjLhgs$X|?HI8Y6PckWUBPGSq!Ay%zV?xM4))BCpXGL$hzDfEH06cZ}>L
z%KyK2Aa4||chDZt*Dh1z at mWl_dHqnU5gNgv;HYhVa$}O!*B`tIEm%3jJsumA?^Qng
zg5^_pB7Y^HaD#D(JB|mgS;p{Cv|iX<%Y#Go3lLzx|Gi6l-7*|XSGbNJ{(ko^_K|7v
z#f$#_eQ#d29Xt*Wv|c`at8#wtR%P(G4T1Jn1*(6HMDWRW+T**8w8!n_2YY8^9PXhX
x0=;eS at FL$%_4N^0HoBXmX?w3 at YJIsA{e4$ockTrKS9evPp|Sh-Q2+Nd_CGUCp0fY|

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/date-oserror.mbox b/patchwork/tests/fuzztests/date-oserror.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..36b8837766601706f359b663217a8d2473f16da6
GIT binary patch
literal 8209
zcmb7J&2Qw$b*Eql$P{9D)-jyGUL!BFcD6NAw~Fj$H at o#Y(~@@Nm3D=0&1Pn2Wrj at _
zyBV>`9+KUXc5Q0{BnKx*kW+wMatdGr$#sGJ1wqa}<lv)|06ynvAW?pg>@UrJ0O4qw
zWU=bit5@&ySBFVFBqvi+uL~y|v}h~M#3346)Kw83I+5Zg6%TjBS==Hw9*XX`_ovFu
zTJ+-d(OLTm85_nqWhzBW`!W*yAlF(aT?d5`8K6u?wPnbfY)A{gRs8DGY{?p};X#TM
zm8MQ#m5=sY#*TPaR!NJ3kPLAYl{;z_UYB|1EgdX$l&=yMxhh4&Xh0=FxB`!)+}YeR
zYUL-UWtR1FKgi0dioCKKIzd=YJ at 8$@|8?PBsEoFEpPn6-t=*Tq9mjXJ+vc`qY#Z_<
z$RA7U<;9AoX<HvVSZCR<&`A)6s-s*LOqACmAM*LW=jj#KnW#8Y*=3wuq)eYmFY2|5
zQK?q+rg^?fy=!tEb>$A^Qs>F6b39QAogH^6Q69MiCyG=^mq9kbgl-b2v7b@*<m|ND
zXv#{h-Y{1;1)apvI+?VuT$Zg)%~sW<GGq!t?n5e&QoaM+ZRuOSr_KbT+Q*(=(-!Y&
zge@~Gl1k5XeUqMU(s2-tujtCE+x6Nesi^$4yGhB!T%~uEdl7G7M*K4xbf~;IaW<+I
zS<z)#ulTNR&>2`bilY|k6`5;Ge at C?2Eux)uK_MMG<222mBRV-c?b6l`bO|g_xnb1h
zdY#sAuUd4NsFdP}h859{qfA9v`Rsb6S~MJoSuk>vY-1Swz49Q9UObLGC%N8!P+qzq
zjfQN#u5q&dKzv<JFY4?cVJCm$`xZp^9lcVG6ZNbdL{9i9NrH(Jo&`fpDeH4lZ%Wy!
zu}CY at GE6ExJ!`Mh;nDHI+0n_t_KSn|p|#)EWlQSq_T%bfc`iEH0P0EsR)d|%a4)A6
zrVn<gG!DG7TovvpYxTwZ(D=kp`r;XcS7j4mDTXmx at WmU7Q`~yvcQ3><h$~EmICHX!
zSXwb2zi81 at 8J<sNn5nC5W3;_H&U{!vZ};i&aQNK)<Mz>kKDv7TgYdbLjdr&~Cx|v#
zCzDiV+eh8^%a&y}%lhWf$+nfZ*q6kKQrKkqAaY|bi25yR^ny$XMWR~)pCY{;3g|iB
z6KJ~-q8kiJz~D)oKH&GG=!V4GDLRu-S3D*f3$ZJNAs)e6y>jomMdIGW(5r}u9D#-3
z>ncp~|6Bh|hl=&*>l38C^1KIMvY3p&wcsG3Y7dxIPhDXre6KS2t?lh?u|5%r at B)7T
zUS`yiYj#TG(Ksu4Y66qRmp4?B&^CD+f;K^=;tC$!!Dv;hN)cV41zSj~kb(AUO>7GO
zPfUm>&3jL$%KO#f2`7QNoJwbHZH;<T?CssLB)Q%oG>HKyNp|XnlzI at +hwwCg+PVsy
zIE=@&I-OJJ(X$pA4WlQk?|Np#teaI+Z|wEid$M2K5ywHAY1)cLTkv<^R+Gx4uae4z
z`VoBA0Tguy`!;}rkDSaMkRM#ZgrWU(p%V6LaXd=ta)6MMs8BhnqG%<vA)mliXqtL;
z3L at cn6DN9BK4m)WSIhet(C3)qstO%N<c}ja3*a6S=hD7{lOLx2Qh>>VKflPQ^!kZ2
zwAuX+U-oI>fDuHo)EO!<O5(Fn4OiE>V_}&N=zs?|j=Ufz+f&+CH7z1AXJZq|iM;&z
z<yeiCeKmx3=L_N0O&5T5_hZO38#o!|9y*Jc#{}0Ip(SMjMu=^^ppYQQnFL0006&*N
z`A at F%P)g^8+&~$z1a7umHF8dRKX>6q;Zw*NQWR%c-$W4>p+M0Rp1RdswN7b_9vo8o
z3V!5r<b2Q8w97E~;Fb1jCcl-Kg_gEpc++d+A$AVS<s}c|&?~57bS at 3vs)x{EyRS0U
zySC9&U6s<rwXu?Qib99K*dJAmQr3HMba?#8K0bQy-SbrrTSRa3B!N$*KV)8c<<R!m
zuH?V6aS~Da;Jx?v4?frw8yiIj9yS|Q-pQ^<2bMH+6DfuNcOBh?BgbWxq+F#>Fz9=C
z$WAwMP5|u8=+62jx7qmUy$>E87oRF<|M8qT$nUumF~eAL6z5i5-kGrjvz|TX%cK>J
z3X#ua*OHI?TlmP6){K}RuVOU`?@vU%2<cMdyZ^qp#&A|Q9FoP~#BsLwG4E$MjLKKJ
zc44fi&g=k|X%Dk2EK58J(|8?LL~-K5+p^9D2%4}S8YN1tXxJyDB!ymNvqTPx%(j$U
zOxj-<m_QQb-PMrvqQ|pN*qN!xEv`a at X#bs^^n%cyUKDbm8^SZX!|1Zu{mYOlG|1v8
zEghUau}|%zgM;ZV7W$DBn(Y<tOReSdon;J1*?e<Scc8p+sO&5lKKXEI%+%vz(-wwX
z0zY||-=nuM9cvYL+aW~aVjX`{+-Qr6 at ob|o`H78JY`seS)xYKovSuS;`{D3Dye1fB
zl8&59RoE}Q`P+GX)>g{YgzdUQ>LfD<<_23Qc-E*CL?4oq^xbuAiS8?X=bT<_u`2Ur
zISD;{h|jQ-Pnf*~DS-b%HyY<t0i%scrLlYAb22o&ig(@#d{9~G(V>0xC0SKYn`p^q
zMhVFJr3Wtde+8a1r_Tb3k%oLf{U~~{Ua884Zr0CfnPI(QP?{mkCoy|E2yANlV9abF
zT_ww$bIJDQWN=zYkJT$E5*%Z(0M^4&G3lH1IiY81lM|JV5mV%*__2VtzS3s9!Q}{2
z?^HqD$-;Jm=zzWVaCDie+uNI4sF at 1m(MI7--lB1YC_!Zh;f at nw7@Ves0SvC}vMGHG
zHOp^MmwSaN1nw`FFG%cWtmp^hkaSbXYRlAH(jugaUq|j-D^hDD*YwVNPdD;OX6)VG
z^k*{-5q3}n{bb{H_JR?i&jmT2S3Ia}APGEs|C2j;lt#=y*C+7dGs^5Vrfc{NW&KO8
zA~<_7YPv5bP)P1ZtK8l~<hc*AJtsieM7R$^^&3t5&CGN8_gSskaYs_ at ZxjI(yKu`U
zgaE4GmpM at oFRB(2a#@9vog;&|RSEQj-3ZD~j{LrZLf}4REhYWqTl#tT<a9m;G2t8`
zn0*3rZAc5X6*J-ZcERhf7T4V2{&L}SqcF9DH0E^I)+voVd*C at Xl3V5CX&AiLlnk9P
zQx_u1Qd6%sODG9uV>qOTB7bwdoWi5x+oh*QV{RY0!@OmL^4E64Fn06TRK2u^ffwXs
zXD>EXm5m+4l9!kKxp-DD*$Jr7PMjCjX&sZP;fR8!ZqmhMh at i!M;0XgpocJO#fDE~b
zo9PnSEBFY9gOD4lhW%5#Kz;j2oCdZV-a^d5l!kjf${<cJ8Gd|$l3ODDx at N;SrQaB)
z_FyF(fi%8S?j!N at PqT+R_rP$m+J0=KQh;|s1?QspA{3`8hGT at B15cpL8^y^F!5fW6
zFa(0~7j4LS0uQMM))53^j8p|xtut_!aD;#oORqO+7zBG^&~pY5=2WR_h6T6vjisx7
z`n09fDc}b(%uhf4^vmi^dh)}>yL7;9#3?B~asCQRe&Pi9-9Mvt3=2cc#=Hg6>!L_}
ze5N;_NW*>x)0g!P+2m5XCW4k=SO3_OJJm*`=|ZGApAW0DRzGSYF+Vy*4T_q(#ew0~
zE%yeZVth7Q%o~Mmd-heJWoz=Pu5ZXIb4s+EDIa-8*BwB6n5fm#zUsfi<T_98xsIfR
z!{f?3-PXJ$_~zY`fI5#|=I8E3o#lMJo3UitC at 3N@%hmO=TWZ#=Z|hFGf+~5wBTWk?
z+u6qm(A{39O`R^P^l8hN*Y0<99 at DgS2Qb8R*G&mLhTeS)X at V)w0^o%;S3Orr>PUE%
z<ylvZJq at kR`OLGAHIVy#z0#4UA%S^yuq`v@=3UULFSqXT7Za^Uk){5#bqGHp4JBpZ
z=JA_zFX;J#*Qzd=cy*Z!Q)&3r`DSe at P2_gP_XP*9C&SJ9v9CMR-G at IlYr1t#huGeH
z%))qU5~(vM&%E^udfX<ZQONLjrHOp|oZ3YfP0~J|xC0%`9@?F6EqKPpn{Uf%Z at vX}
zWG>Y1Kn^^r;X9tRYPz-p3hhpHK2WdLEze`R?M`jpig#dz4aHKD`kPH at HmbFAg0i_6
zt@#v<Iu^LJfH$OhADr at hd{uqN?Ny~iUZI(+12VTjs42hHYv?tnW;K}_y0R7*Hli8}
zYB@>SXwk#sNy;sLX!r|?w?RLGYx`H;?K$1LG&pfuqWc}s^=00WH^P*STC- at F&+Jv3
zIbH7I$g1Nv{ka9zbrag%Mg*ZVu4d-~spoo13mgSrF{h186Fzk*HHNd$C7gw^VDlfE
z5b!*|>tZQ at 8)Dzj0U7`O851D2R6W4o-S*h)7?6~Pysikk=QE+!tIc`VsNMJfs91}9
z4Us)O+{PaxvWNL2z{g;B+pJ-(Kq*zwv^htdRV`~0 at X5w!s(^(*lk{Sq0xY;Ob=WZ^
z{~-h;8%@>249jHiYgbket8ojla3XPE!V2bMfo|x!XBv))k-NmcHxJ}HkbsGSy0s8!
z-5M4nt5UoDtSzab?K(x~Q*Si&*Cqjby(U)(-RIqQzUnMqld$T#g at WQPL$c|u_$;hl
znxHO1ZsBs#b$n{K|8u$MLKe$fFlv~9EtV<|K)lkcnQt<I^g4C1B0EDBt8DcnWTvbu
zHC~)y%9R)Yo#$!|*{BvAbCQP(0^POhj$)3ly9L8fF;cNm<}&%*BEq#AK89sCpNpOs
z5^5OL>iJe1X&DYB>g4F;)Uc0K)5*H!YNKIMtw~moYSYStyyf$RU6Kv>1^#Q8Wa!h*
z7^q{Qg-V4ygBrEPtBansZ|PO0xhUvz3R~6Q4w;g4bg2^ZeV(>PP5Bm5e&(o2ns#3U
zWVw84_w%=h_^mSdCmZlGdC0%B7xQ4BBM^&Xb`johwP}>YIRUFpr+Z3U{x5#9a9i$k
zxihuES|iu_cUw5znU!CoJgbHlajKXkW7O9L#ag3LgVX-AWN2S-hNn2gYatJd5W8a6
z9Va-t0NR8 at 3wHqYmwIr=3_CE&%9vUjhe|MNhYC3!1rf6MW$Z1ybgolWfPgSi-U65S
z88D_CMazo=q=a}cii3|tPx+iCLL1ejsCHMhWvB%V6aZj053CG~=E3!~BytLMl+vto
z at 5slD1wP0%Mi2O44uIus08q<Oz<){e%y|%xfr|As4SyPnu(%j|*Odarn>)+D$erae
zMEg4Gs?Xrnw-{bsc<4J>T9zNaA#2-<(|!dIW;%}g1t1HJ5e1MF#(h+|6P;e|(8M^K
zSJ)2;Oe4dd5U1sL>4L{63I)eHb(ab#&TE|sFkc5!fHLHQ!C4v*u2Gx at S)5#>W^akS
zIO9U=r=Ph%_=sVVVk<b`%&$>AzKc{M`2kEhbgp}fp_6>3S<wz)ASLHlI38nNaUz_p
z2 at xmke1Ulfw>PA+imR=VMcCjqhFJuC1JEUyE<^&Itbu<(GOXEYX$^>P4G}L?#d~>G
z0Jg^--shvjuQ?mQc{Zkz<-2BWgF^t%LA~WK037FE;B$d~T0N;dx-Tmgr!MQJ<-!HX
zdQHzkdZv1FyNFkdu{mD<g_Ie_NAbIk6ScMJeQ(cBkyg+3dJfh>gOjmaU_kURy?`wi
z4FJUl9snfV(H4BHX<zv at 0~ibBVg}-E7Qj8M%qb4o%6!5`!{StywcrHjTLjy~*-xbi
zy$r$pTe%1x%jX=c at E!#;xRhFyzVhqdZ)3o{Io|dL at HU(7-BZbpw#_*BQt8Hs9FrIS
zu^?ZVPYwyL3Br+LjuP`+yR96L`Gn6(;xX`t3)HhdP891+Js05g4w*uLVX((8j+Rac
z(!RwKgDPm)^IU}A{Q?md;LpnEije*{<=ju^P-h%M244(yiq{2~7xGYH$fJ<n?XvWy
znB~0>?x2+{ya>}20Od(G2Pg~St=;qT!}-E{-G_sMOd-2_jF at 5I9%lN3LUxe#O(8q&
HYnt|d&ew-A

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/date-too-long.mbox b/patchwork/tests/fuzztests/date-too-long.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..e0642a435ce42520dfac8616a4c7ab4af0779ca6
GIT binary patch
literal 1828
zcmbtUZExa65YE at kr~3uflrMz?n_cibA(tM3iYn-$Gf^W&(aG2g_+qb-y(ZA#(f`!H
z)mca`m%FO1)U{ytWp-Ykd1fbNkz<xF;G>9>0Gk<d?pq!%_87GWXyLE5#2(`oa+h&5
zU>2n+z<4#ll1 at lX{GMky7}F#u%GEi9LMEaNOj^KYq(p$fiKO$zkoz~|U_7u{U^&QO
zLJ<Xjip?5B6K4%P`&{JbFfRf;n6DR~MNAP)(j9J!M=ZAD5mSk>kXRP=3iBcn6*d<%
z<xZd5EtrX_idMpyUIth{oI{lsGC*!J7!^_psf_u4LxJXXrqWGRs&1a{L^6QWMN!Kn
zD)+;N!MWY*GskkcL9?FAY~Q7+#kkL`p5+XKz8m0D!)eCR_K!je^;nb-l^N4k^N#yH
z^GC-sxnuhGEe%{8iCw&AoYWohMSZN*A5*o)8HTetAfoJ`jh7<Ub>KQFhw4D}66sb@
z%?>`3MBCZE*m-j6SZ2 at co7}g*bNa0^Az9-5D#TJG7_TEKMfMa)8ka>?ER~MvI&^(z
zT8?YC27t5Tb##8vx6xo8W3OO8qY at t2pw-!{Yy#`+JG%JMHcjv{l46f%y7rRFon=wi
zHW at Z=IUnH70IyP6?{McipB!s|LK-(AQF3dy at D~w36kWoKzMhK{krZXr?VHTx%;4rS
z<~^KKcvE5lKMdlQO0x>j7AY}!Gzt)Dk)3w{GrWrGszN=NIGbLFct#|DX5rm+q~i7c
zfsS65;HK~4q$K_k8*}sD_=R8b%Xl7CaJqe at Wf{q8DN183<047rDp30LFg#|lKH<!n
z&720 at 8mWx3pUX1cM%g^giO$S<Aq}JE(lDFM>)F`6nU7jHnO=?O)7f}<Hy%yA%MoV*
z<D=30{(E*$^jZf;^a-3Zl~!m}m{pB)Y}QmA)`EDWf)#uysV|q*>$lWW{gXE*C%U(^
zKDAd!hnao|R!@@FNe<T}7IpRjx4N(uz&uhWJm-Iul$pz at v*`a-rr$uS#7=cLS(M5F
zR_my&gc?r64~FO2zQG51q=q7Sx$_;K=q^$PAP_>6;(%(O1GNFIOKJuH2-6&aUJr!p
zhF(u4o&8jiGJ at FYJF*6N2hamJeVZjFNQ{8eISmCF{@+;v4jW0*_=gmfJ_|5X)Qt at t
zU?O&e?=mshFdPn{v;CojBwem`EVK{pc3U6A#RVGN_c{)?weaxbLX~@ZaNgAV)zLrX
zWb|zp+KBaGPMfsE0l6{bgZYnJg39VMkPozTbdl(_cEjiyIJ&W%qaTt!Il at niSOJzT
zf)Syu9gGJg$)$c(4*n^VqlZ!0AtySAXZyZ$%;IR>?Kw<aKS)<w2Ry~anhc$iK}M4D
SXwzJ$qrX<`zgEUD0R933CgutN

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/date.mbox b/patchwork/tests/fuzztests/date.mbox
new file mode 100644
index 000000000000..8a9685aab0f8
--- /dev/null
+++ b/patchwork/tests/fuzztests/date.mbox
@@ -0,0 +1,44 @@
+From lib
+Recd: (
+Mait: cmlm
+-Id:
+Sender:
+Date: Wg>
+SctMIon: 1.0
+Content-Transfer-Encoding: 8bit
+Subject:: Up entry for B01X ARM
+From:=?utf-X?b?UmFmYcwCIE1pxYJlY2tp?= <.com>
+X-: 913
+Message-Id: <1m>
+To: Fan Flli m>
+Cc: bcm-kist at broadc}m.c6
+ContentF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>,
+ An Morton <akpm at l…nux-foundation.org>,
+ "David S.i iller" <dAvem at divemloft.net>,
+ÿreg Kroah-Hartman <inuxfoundation.org>,
+ Mauro alho Chehab <mchehab at osg.samsung.com>,
+ Kuenter Roeck <linux at roeck-us.net>, Jiri Slaby <cz>,
+ linux-kernel at vger.kernel.org ( list)
+Date:,  1 Jun 2016 22:00:54+0200
+
+Adh
+bci.
+
+1 Jun 2016 22:00:5iLf"--ERS
+4
+--- a/ERS
++++ S
+@@ -2511, +2511,12 @@ F:*
+ 
+ BROURE
+ M:	>
++Mfał
+ L:g
++Lcom
+ Sà	ed
+ 
+-F:
++F:i
+ F70*
+ 
+ B
diff --git a/patchwork/tests/fuzztests/dateheader.mbox b/patchwork/tests/fuzztests/dateheader.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..7d25b87b6418cf96c41d644aee1082dcc59d54f8
GIT binary patch
literal 580
zcma)3O^?$s5bc%u3tUEBA#JtmV5ez9ToM&%EA5J9p$+1k4=3@`*p-ve&5eIvoT8OD
zBKcX*Gw+RO?5)ua9%KePkry1V56D>Py~Aw4bhbnf?|X$VWgd1M^J*_tAq;o4sbHOU
zg5wWS-2N+L0bfx5`+Ppb*4E}Ijy3Kbe3;_<C*8!5XpW|eVc%y at BDYny@)?i%g!-2_
zp;V}}LZkZ%8(oMNuQN-TKWB>>JczbUD?#qod@}hNLo2o7$Q%lvwCaTFNHQF4Q%!&9
z<S{kf+eSW%VhOJ at -K!!sLo_9fE!;WvJ)aTF+<-2^z*3L0kb17?M|>Wza5|Q(x|#<J
zfDrQL#g$66#Jqkqt>|`B+pM at q|K4s=)t17LjmmW)RmJh!_s3+jCSP}VUy=_WKW_ja
zqG5IzptNM<t#H7u$br|?&VS)`Y-2XbY<z$#in_e`M(yZ%@!2#Ty(3iXz<9oB3R#v&
x$jO1#3JE(;@P^&`xLN^T$uhBf9m9<UT0|}doGk$;-0K$XH;ohj-#ZZke*nVInn(Zu

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/earlyfail.mbox b/patchwork/tests/fuzztests/earlyfail.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..47db41d153455d30c260c401d7c5b1ab384b851d
GIT binary patch
literal 1712
zcmbtUTW{h<6wWK>2UKdGj(BNUuruajV8E1(0}@rxMhjIVt+tiH19)SPkv-1BTYgm^
z`sdnnoMn^kHd<9RV$PY1zd4uh^E68njH4C2RqIgV`Ra&4ZGdh3xzN}YP8;SyWF)S)
z1I%a%tXU}2Y&(L5k~TST6&NM)R~0s%y at gI!c7$xZC}2ugNL2eBE^M4varhxkMzBmJ
zmN3QYgId!K)95$crynuBS06Fbs8fwuT5K_)sK_`j%vGKTTV>6zBo=og$fHzCbZh~B
zs*TddS|0ZlOj5)q+6S4rNTP!Z2T)n1g${%4=vAAJ(`mMZ+jbp`yk=K)`dxC{!s&~4
zv+a6+wz^KgI{wx%$;ZlzB^vb<K^EwIqcUrv*J&8(t;E-t*AD>T9bp5W0M7<x^QcR^
z8_~Sn<x+CBMxYHY1qdn<_`U?xh{F+JVgn_E!mYx4Y8aOhMGdy_CZk5&!mXvK77OkQ
z{}Z^$;ybv_0hWQWLAc<n5d6phD1?Pg>yRH4xK|m?GnFBQxrh=3Dl@`OmFF`}dq3uM
z7(pHQ9bEwY1kePiyoy800|OxV%0dw^SQghpQ=C<Ds2B_ps)NMUCbW0pc^)+GA%ig5
z?C7*b>rk)Pc^k%Kw0<}OA{IRGA02{vbpdr+D}7p|DGmtMUYBrh2~M?J0`wiNSfYdz
zLX>b$U$52%Fso4l2z3UU49GG*RTnYGVLWO8#&{hRd5-LBoX>6+T=m6?pzm%1v);XD
zrXDa3ao_6UG*dYeQK>WEpdda`kaGU~h at R*QA|8!B8e23vqQf1&wIUtFud^(=58`E%
z5U+)cS8C0&bWo7G`m)urMX%ZU?);afU&HC_da|6&C*He>KkZ%ljxUAd`<Jat!F<_C
z95QD}c|#NBXyq8^)e)W-QOG=6?~P<GkuW#RC(>4nImII5^UN*UjMEkIi!B|ZdB{AY
z?iS275^{Xv+vg-p=cP>lQ8=Rx=3*ZQksjcB7i76I-fZ#4>h(H(%NZnr at tDIWy??E?
z?&^Q=yLge`4`*j*pZNVeuP?HCc<SFNLejrsUt(ZNN&H7KIQ?G3#X6fFj>jfraeS?V
z?Z4 at ulvc>PV0p0~S|l&$`?lNogCWWG2@`*RQ6Du5xzq_M`0)l`owWN&x?$gaRPUqO
ux=mMbz at _anI$-6m)sBEFBsf8q^js&OWzD}@jlUVspD$|qOcV5FfxiKOG^T|B

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/msgid-len.mbox b/patchwork/tests/fuzztests/msgid-len.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..2339b3ccd20bab1acf215947b8f2c7198616a3df
GIT binary patch
literal 1809
zcmbVM-EQJW6pmEwMb0bi%@J2&!Dh^_F&Ic7Y|#d76oZ;7TCE0q0B`(5#{&z!X!{0z
zi#}W5B0XcWn`k$xs$wzY at tpIWpYNPAmT8O|u9($?VVVp?qKw&LBb+lO_Nuapc$jq1
zUvrrW<rcPTY1jprPSV6d%Vb(d<vNll*-}X3GV#+OOjZusi%@~LU3?P0avYp*kOcoa
z;4+nX!K_<6znQ|A>^tc8bKw4O{dqi&fA)VGy8ZcVY}ox at s%q1Bv1|Hi+=E-g!M0U{
zsmL<E62>HOPP$gydp%1X9P<RnQ52>x{CGh68lwzk>=C+u!<XD0He9>vR at pQ>z6$?7
z)E0l`<alGSig_62)=j|k1gEJCPLhDDFip%<u6l%681Y>gpl9MVj3OZm*bVqj#Djc|
z(xoyJp|s>%`S3fwlPO;tKXR#Ja=9BO+x;@#euFvXTbUw{)+r9x!WZFA1P(4WT|r>I
z^9esC(9fy7&$N4ZcGs+%RkLPV?Z$^9E)M8(vG>=^GQSs2{}d8uR~||cXm*oCMEE&W
zYl^^^X+|!iH=SL3tu{03%~qq>0SY}SV*^LR$11ZdY&*3E8q8+wiI9<lT_S44m2k8;
zdnRu+o%%DKoccU*Bc6x at b~VF^axjW`rC~BWyS1zi&O3OeQ-piF`LS8=P!$<-uY+>e
zDB at dUE3J?>^i*3o7C|a`rDihIVuocdeXEKya_?)s>OxUrlwo%fu6i&WI*4?LG&vDo
z at oko&ekY<Q*B*9zUn>~zuDSBpAE?m6Jw^d;YBr9g$S_SXHlI2{cMrzfNQE1sxDtnZ
z5m5FPImPne7K~><%3h1LS)Ep!)*7uAYp`a4YCTMNbS`DM<IyaP36wRTlF!&NnI^NV
z4LqCAhD97tt}bVj>7{#jIUL)gp~W0#4Tl%C3-$qS#G1I#Ii?hJRhXfXVU!hmc($eD
zWkv8e%2~mC>7ZQ772Hyb*T at a3Go7;xsog!gjHv427{ZI*6MQa0qCpJTv at N#LJ=|($
zGk_UaCaIsC{P6deJiG`)N%$tG`9ym4 at bK!{M4EW-4cl(C4XYD#<%-}*=lhA&(h~^;
zf at hK+kR4*!2}x&3-2eby7$eYNLAWmH^CY1=BO_r1vDZ4u7N8GM1vq^Z1tuiOfx<cU
z1OY!L<^M!=oU?!@e*{6{UqVp&&OxrIpbFZ-K<p{M%fMWN>$*_hfrKDjuC*`p9ZIE=
zzJ|d74XbUJn^@ADje~)b2SCKFUi2R=0)10~5`9C<p_ox0u|sA|KZpO)ORw|UuX~BG
z>ot~}VKfJhX6ntO9opMu2tO`-1t^Oe5=z>@Wrub$smDrgpCZXE+zh>Pe2n2SgrMC#
rMsY-MRhw);QRuzg(&&JvxLCV-Lu3R<ag^v?hoc{=?ElD&VF3ICrE2Y|

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/msgid-len2.mbox b/patchwork/tests/fuzztests/msgid-len2.mbox
new file mode 100644
index 000000000000..53fa874152b4
--- /dev/null
+++ b/patchwork/tests/fuzztests/msgid-len2.mbox
@@ -0,0 +1,37 @@
+From ste016
+ath: <st
+From: Sen Fane <steom>
+To: com
+Subject: [PATCH 2/2] test: Cwn
+Date:, 11 Sep 2016 23:22:04 +0100
+Message-ID:>
+X-er: il=2
+In-Reply-To: <1473632524-8585-1-git-send-email-stephenfinucane at gmail.com>References: <1473632524-8585-1-git-send-emaifa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>,
+ An Mnuxfoundation.oorton <akpm at linuZ-foundation.org>,
+ "David S. Miller" <davem at davemloft.net>,
+ Greg Kroah-Hartman <inuxfoundation.org>,
+ Mauro alho Chehab <mchehab at osg.samˆungÿÿom>,
+ Guenter Roeck <linux at roeck-us.net>, Jiri Slaby <cz>,
+ linux-kernel at vger.kernel.oundation.oortoorg ( list)
+Date:,  1 Jun 2016 2il.cdm>,
+ An Mnuxfoundat2:00:54 +0200
+
+Adh
+bci.
+
+>
+---
+ M++-
+(-)
+
+diff --ERS
+4
+--- a/ERS
++++ S
+@@ -2511,10 +2511,12 @@ F:*
+ 
+ BROURE
+ M:	>
++Mfał
+ L:g
++Lc B
diff --git a/patchwork/tests/fuzztests/msgidheader.mbox b/patchwork/tests/fuzztests/msgidheader.mbox
new file mode 100644
index 000000000000..e94e82ec1437
--- /dev/null
+++ b/patchwork/tests/fuzztests/msgidheader.mbox
@@ -0,0 +1,131 @@
+Received: with ECARTIS (v1.0.0; list lin; Tue, 06 Dec 2011 01:49:42 +0100 (CET)
+ived: from mcom 337 O
+  om" -OK)
+    by eddi with ESMTP id SAth PT
+ >); Tue, 6 Dec 2011 9:37 +0100
+Received:m caexch.com (Not Verified[192.168.16.9]) by mail3.caviumnetworks.com with Mal (
+    id 00>; Mon, 05 Dec 2011 1604 -
+Received: from .caveonetworks.com ([192.168.16.9]) by caexch01.caveonetworks.com with M SMT
+   n, 5 Dec 2011 1636 -
+Received: from dd1.caveonetworks.com ([64.2.3.195]) by caexch01.caveonetworks.com over TLS red channel with Microsoft SMTPS790.4675);
+ Mon, 5 Dec 2011 9:35 -0800
+Message-ID: <m>
+Date:on, 05 Dec 2011 16:49:35 -0800
+From:avid Daney <om>
+nt: lla/5.0 (X11; U; Linux x86_64; en-US; rv5) Gecko/20101027 Fedora/3.0.10-1.fc12 T0
+MIon: 1.0
+To: tils <big>
+CC:  s <l>,
+ l Lauss >,
+ n MIPS <>
+Subject: [Patch]: Fix ld p38 Fres on m.
+Content-Type: multipart/mixed;
+ boundary="------------080709040708040308010506"
+X-inalArrivalTime: 06 Dec 2011 00:49:35.0825 (UTC) FILETIME=[ECF8DC10:01CCB3B0]
+Reh: <om>
+o: <tis -s ls"> (uid 0)
+cpt:g
+Or: rfrg
+Xn: 3
+X-eon: tis .0
+Sr: lorg
+o: lorg
+r: dm
+Pr: bulk
+Xt: ls
+
+Tat.
+--------------080709040708040308010506
+Content-Type: text/plain; charset=ISO-8859-1;mat=ed
+Content-Transfer-Encoding: 7bit
+
+e 
+S.
+
+T
+sym
+vere 
+rer 
+
+
+Sim 
+sag 
+P" 
+
+
+Ine 
+'s.
+
+ 
+ex.
+
+Tnu
+
+?
+
+2
+
+	*ld.
+n a
+t.
+	Set
+
+
+--------------080709040708040308010506
+Content-Type: text/plain;
+ ="dd"
+Content-Transfer-Encoding:t
+Con: at;
+ "
+
+Index: bfd.h
+===
+,v
+r
+difh
+--- bf
++++ bfd
+@@ -198,6 +198,8 @@try
+   u
+   
+    1;
+ */
+ 1;
+ 
+  */
+ ;
+In.c
+===
+Rv
+re430
+nk.c
+--- bfd430
++++ 000
+@@ -1946,6 +1946,9 @@ _bct
+ r)
+ 
+ 
++
++  E;
++
+   );
+ 
+   
+Ind
+===
+RCS,v
+r
+dif
+--- bfd96
++++ b0
+@@ -7260,6 +7260,7 @@ 
+ 	 bh;
+ 0;
+ 1;
++	  1;
+ 
+ 
+ ))
+
+--------------080709040708040308010506--
+
diff --git a/patchwork/tests/fuzztests/refshdr.mbox b/patchwork/tests/fuzztests/refshdr.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..bc7109aa575cdaf2e8d509bffaad39271d287e51
GIT binary patch
literal 816
zcmbV~L66!n5QRC<uNbMPm6?#3u#2n}qGF2{X^~dIVWp~vlnmf1I4Cjg?y39F=}b!7
zdnL!Q9q03VZ#-}6Bes##>=uf6aCqNFn9HKWH3ys*fpv-N;{-Of!)<+p_4(^J-bRO?
zpFeJ9k7x(>3r22bW%eV$LlN2aG0TK-LMvpnLuai^b2Mp|rm*C;E%r={2RDHi;>Mw`
z(840nici%W=}GrlemA at w+L6s^JQ|NEqrH#Rawv(9g|A3toems!KAg9rbGp~nL=;Y7
z#XD{|Y`Og}(B*RZ`5UxcEI&ESk`!ijh#Vqq-cIbq?rR*Js^Y!Z>q%<aFdu=Om8Sr6
z6#zs8vdb7FLqNc716XndDE)4SB?QiM at T?ngQ1bUdI9C<Oe)%??BBlKlP1YadbPDD}
z2?oql-GC|1V4k at J<ImDXZ9<f;<E0(17<8b2SOqG}C{=)z00AkFgh$FF<x%V!A=u<D
z$wAySwWJv*GSCa4#n%dJ71gKgS!mi5SS~arO-Q4HCm*Z@=&ErIL$gr(uMzxJW{fgX
z&+_Ut{<VycT$M at ZI*9pJhOHX*WgiSTM at iB|t{O3-YE`LR;gxEVw$W?q#g$$*nZM*$
oeSfrNWBCI%2N4(m*3sTL07NN|JW at A6i#JlVQi>+px<fRMUmz3JLI3~&

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/unknown-encoding.mbox b/patchwork/tests/fuzztests/unknown-encoding.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..f6ce3fe115c5838eae4857c236e1b5804d608771
GIT binary patch
literal 1751
zcmb_cQFG!p5N;o{?|tjT4lg~9*pVTCF%U=$T)7@|nV3v-(`j#nEkGArrm{>)U)n#>
zU)BHA>&jdwchgR$Gc6vplDzu9{dU)y={&<7H_Yomm at 6Zcah4A|5ugzVbGGYayydzO
zW>_oD+VN|!nCB`$&t;GPnyX?hv@=z4o=CL`&|gUdQMr02ViN>-yF&uj54g at XUNP?u
zFK-qwBkll)qY8Mm8r^2I>`nY_IG=jE!<(1so2J=~hB$EJJiCB9C%~T9f(6Ak at MvS1
z2RP#jXK5;t)?pmrD$bmHS(x!k=RBcv_UtJT$rsC+<BxtE-S9OZhV7x>95&fP9;YI{
zmzL>g{!aYR9&a)((~6ajUMgJV+T;oc{C<~>Q>n^>v(8JEa3gc&=6Z8MezghT%LF4A
z7cxzSuHhizdy$Q+G0oS;Rl-=$7g}ua8wzmie9g7VNW;K_{vC6{OPwQ6w>gGevE?fq
zWN|ea=f%b?cvh5Z^H-!VNQP4uM;d%7wZtf~^;1fu_>(kSTwt_V0tr&5*v5&7vB^9S
zdqJy>4yCpz_(nMM38k1aI^jkH)|Gwa>ve*2^1mhjs(_X12 at Y(HlnF3R`B~d#*uL|;
zKHm26mDPp^zw@?p-lslrZlgZxeY=h};QWjtpr_fznMiWY&sr{XJ?41sI`*2lWFK{$
zExC~ph5=%MgVbg-rJ1!<rulV*g9|wJ+)N%YO>o!pai&FqRKU!wdN#nUO!|PVQ=_hu
zil>)a%RNt*GNa~VoyWv5R*5A&ezT3wZkJ&lXY*In<$N(6em4zg{v`BRz`QWLYF)AK
z;YMtO3&?{4odVOMc7e}I>IznecxQqQyw(9~=CgCwqS0e*_CHd;r?S~HP?iQpJ{iJV
zZ{Uu;;}&H=*bmzJ(>EPad?|Ib#i%T;lMJrOtjhEr?ren%fF(CBIG_ATPnY#bS@#ot
z|9r2cT&l;rWgfkDe81guyne>bP$W;?EnR!JfIx^`iUW!V1AC!qt%XJah-8L;Xud(X
zuG#fm{f_WeLCy%`V9%%$U<A+vIC-8XE-2(ca!w*a!2ekl-8Qu(sXZaV*mnVPLrqu%
zoU23}D8K8(-NJA<gws7}NaT8JW1)R$G#d6bjK}DBJ^!?W4QqTHkB$Bf5V5p_{i8>q
z&(EMid)1saX^DNxgBw at yHv})vTMX2_`^)<yMPk>MhW*Mu(42RUJY;)Bgl|`|0n~L$
zBSOOxO#5VsvQCs0KPfpfgpt+oC29B|A?bCFDvs#gW`|ky%62U};0dm_1ayL*f5ym?
Sj>gGRjzzE6|7~R)2jEXb-q_p#

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/value2.mbox b/patchwork/tests/fuzztests/value2.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..49744ab7cbfcc853ffc4156406f339599cf104a6
GIT binary patch
literal 1598
zcmaJ>U2Y;r5FWoo+IsR4N=Q*+n;Ck*{0(5R!K}Oq+6b^@X%nrQnFeM((@lDMFwRSI
zfjs31IYsV}1LYx-Qw=8Gti35j^<PzW%~#dmP^%PI+%UfeeI<>M#+}};M1V$YOlg(y
z*l`{nmRx6#hnmZ5F0^|oLlwnx5#R#}O!C<W5t<;t>lIQIeUEdc at q+m`cs?G%kS+?a
z)6LD?ZFFbd>*lBO?bW5f+NkslZrlKyeg#G%%lJaLS5bg%KP{iZR0TNX5{F3=BU$#t
z;CvRQ?rofz-b^bVeXmk4RA~|DuIuU0Iq3e_9rHQw^sAjlxl?ANcsCW{ZQSi(`zKC$
zS9^<;$BFekBiD0 at Bjp?_iL-g+EuqutKyeKkqIkXpB|W7V)~+z%>o~%Rhod-2gf3t^
z;%kxiwmMOF#*@Nv4jg=~#S*{yL-D1FpZrHW*9v*EWRBxR)uR^Bz1UxhC7)qC4Y!lt
z7kg3J!pnG?<#Msl^i57!3yot%--GQWmieZq?ZVA7y4;)<@lAqvv038iKGZ5xbAyx7
z)SuLwAKxmASjB+|vCMoQn?a?DE^9FMRD?m`91!FKZba}anKS%f3HY3#8E`4?v2Cj=
zO at K+lOI45Iq2v24ymp*F|06=W*OM0Nb at d2e(>JIRWkbJm9fu-PnwKgb^L*y|-aPcn
zIHmNilnl`K*tR!JoMhOZ#S3bUet<}e#1`ro!Z*({v~#NM)prwYpTT5<NrbCP1BY5<
zNaaqw$5&vBW?w;?CnjETZAxjp5fK$=rgBNqoKC at Y4-ef(A*kxC$xcZ(NLNVvtjcNy
zYUWt-<Xr1`&68=&YELLL7Mxn7JMS+0!^WWRvw->i{zc`2{QzUJq^`HXQO~zcoS~ax
zk`>DMbxy#tBM4U}SioBypaw-+QCC{yMCs%fZVX}a(l!}n at cXCoLhjE9;hiOf-(uOq
z&=P`0Ve-~(G^$P4Z>8LHMD+K?o<x3r#uN2fYybqp!~>W at cAvspXj*IW*O!vUuQEEo
zW3jR4G6(1almT8HCy at t-$iaB<Y9c5I>~Y_XpF{uI7d%p$q&jvAQB-&`c%-%7<@@mC
z#=j%>84&*eHvW$DjCBl<8wykaxRR0B1TT^WB}n^la&lsiq1Qv#Z#IfGJh4Lqdp)8`
zpqG?eW&h|?P?{W<09zE=3%C3;CjJqp6$S^lw6hBv*|iPL=%MaHpVm%n>{_u&q4E7J
oG=TcZ283~cvL~^<f3voAFYLVQ<r=e at ZO6LxC%eyK>$(8{0J0^$_W%F@

literal 0
HcmV?d00001

diff --git a/patchwork/tests/fuzztests/year-out-of-range.mbox b/patchwork/tests/fuzztests/year-out-of-range.mbox
new file mode 100644
index 0000000000000000000000000000000000000000..2dd609b0ca8c0aa80542e05f6a90831b9218002b
GIT binary patch
literal 1660
zcmah}TWjM+6c(iva^CxXa39)49(yFqHzjtxI5BHT*buuAD9a*CV|%*N$c#p50(~g-
zsXw~3=g4fbSxPIUx$8TZ`M$HTWr3AbG8jPO_Ay>m4i>Z+<4PG^Bu4R)DvK$s%NWzL
zfK|QuMWrsrpKsr+=Wj9WhVRj-idN>o8n{fHirW|jgmA!+kTLAVVHl5PB!_ZDZI4^@
zWgsQosH#eKN-QtqDclQXW7Ii at ur%UM9r7o^W-o$h*c<f1ei(^Sf7BO&*l8y!WquQ?
zNOUg9$HQKktu}Q^PS19{+97wRaHqD)DwC?}zkss;2fA6_T*Vl4B+N_WlyPGHbWkzH
z{^+`gJkbW`l)|7F^?__f5 at 1mlndf;z0G;xEA9w_qTEI*>fJ|>|%)qE90<CCQU^i0_
zT~p^d(0R<f*$jnjOZ0>G2xl|!zstY}|GKo`CpGxDssdlv)Hr?#k(vfiHh4+50eXRD
zK*sVJl>kKt1PI0xgeMqJFrIMDD-goYuoD4AV at t}Wo6>;TaI at r8a2hxtaIH-k0yHUS
z!xS+G%rQPX(4P0The_8tns8v$HI6*Tg>O}!b(+u&MOe|W;;3}i24C5N(&amqTk at 7&
zg1=xvq`l)CZpcZ*^soYE6wU7=IQmDvq0{+wQdbpD+kggdmbWXsn0`*=#HIW9F)s8Y
z=2`pD8{xvL3QL1U=Zo7e>fGr=Vx8xG<*Do(a8uSMOYGC6MPWZb#POkg&G|s~<)B3@
z*Cxr|SgRkBe60(jkR0HpN?9!dN*PDvxYwV_QP at ZLX+1wZTP&}y)<i#!mi6Ftg`&c|
zYEAKnT4yLvAw9Tw2k%Hgc58QVZ({7RqDmU at dAh6>ZRRCy5=PV0JS*Uqy3L3DBixgQ
z^9o>{IPZ6+?ejDEA`35^KgV>R*h;yH=e-l7QGYCg^CEE*mA(996Z0*pP+Xa`%(U6X
zINWIBzd~4b$R1Qr1w4>U5v;OEtXb&-fhq&SZHwniszmTTv4ZrY9{C?r1N;cY1UNZk
z<`_)Cb>Pnx3yT@}+4K4`{^kPIT*ixsUnrTbb<)bR*2 at 73p?Vd9<GmOYM`v5?;2-Ld
z^0>`9dzefn(0%~Ra@;pE+-w`#)Ao_~<57D++^3FJ?d%gEV$BVGgh=gK7ihFJowUKb
zBRm!LB$$u1Lcy^up0k`JmC{B}<7jXMjt0S)knzJNb%6GiAz59BSLf7|q0^%oBoo=u
z!hF?!pmOEu?I-;4;OO>QgFXxglF^%f$moD4xY?h>HzyvE at Hyjh^r;~Ky9lT}z&`-O
BtP=nL

literal 0
HcmV?d00001

diff --git a/patchwork/tests/test_parser.py b/patchwork/tests/test_parser.py
index 57a3f0decfde..80a559ec871b 100644
--- a/patchwork/tests/test_parser.py
+++ b/patchwork/tests/test_parser.py
@@ -26,6 +26,7 @@ import os
 
 from django.test import TestCase
 from django.utils import six
+from unittest import skipIf
 
 from patchwork.models import Comment
 from patchwork.models import Patch
@@ -43,6 +44,7 @@ from patchwork.parser import parse_version
 from patchwork.parser import split_prefixes
 from patchwork.parser import subject_check
 from patchwork.tests import TEST_MAIL_DIR
+from patchwork.tests import TEST_FUZZ_DIR
 from patchwork.tests.utils import create_project
 from patchwork.tests.utils import create_series
 from patchwork.tests.utils import create_series_reference
@@ -52,15 +54,20 @@ from patchwork.tests.utils import read_patch
 from patchwork.tests.utils import SAMPLE_DIFF
 
 
-def read_mail(filename, project=None):
-    """Read a mail from a file."""
-    file_path = os.path.join(TEST_MAIL_DIR, filename)
+def load_mail(file_path):
     if six.PY3:
         with open(file_path, 'rb') as f:
             mail = email.message_from_binary_file(f)
     else:
         with open(file_path) as f:
             mail = email.message_from_file(f)
+    return mail
+
+
+def read_mail(filename, project=None):
+    """Read a mail from a file."""
+    file_path = os.path.join(TEST_MAIL_DIR, filename)
+    mail = load_mail(file_path)
     if 'Message-Id' not in mail:
         mail['Message-Id'] = make_msgid()
     if project:
@@ -819,3 +826,47 @@ class SubjectTest(TestCase):
         self.assertEqual(parse_version('Hello, world', ['v10']), 10)
         self.assertEqual(parse_version('Hello, world (v2)', []), 2)
         self.assertEqual(parse_version('Hello, world (V6)', []), 6)
+
+
+class FuzzTest(TestCase):
+    """Test fuzzed patches."""
+    def setUp(self):
+        create_project(listid="patchwork.ozlabs.org")
+
+    def _test_patch(self, name):
+        file_path = os.path.join(TEST_FUZZ_DIR, name)
+        m = load_mail(file_path)
+        try:
+            parse_mail(m, list_id="patchwork.ozlabs.org")
+        except ValueError:
+            pass
+
+    @skipIf(six.PY2, "breaks only on python3")
+    def test_early_fail(self):
+        file_path = os.path.join(TEST_FUZZ_DIR, 'earlyfail.mbox')
+        with self.assertRaises(AttributeError):
+            load_mail(file_path)
+
+    def test_base64err(self):
+        self._test_patch('base64err.mbox')
+
+    def test_codec(self):
+        self._test_patch('codec-null.mbox')
+        self._test_patch('charset.mbox')
+        self._test_patch('unknown-encoding.mbox')
+        self._test_patch('value2.mbox')
+
+    def test_date(self):
+        self._test_patch('date.mbox')
+        self._test_patch('date-too-long.mbox')
+        self._test_patch('year-out-of-range.mbox')
+        self._test_patch('date-oserror.mbox')
+
+    def test_msgid(self):
+        self._test_patch('msgid-len.mbox')
+        self._test_patch('msgid-len2.mbox')
+
+    def test_hdr(self):
+        self._test_patch('refshdr.mbox')
+        self._test_patch('dateheader.mbox')
+        self._test_patch('msgidheader.mbox')
-- 
2.11.0



More information about the Patchwork mailing list