From 638fdfcbdd85014b31f1f5dddaf4e54d1669d932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Novomesk=C3=BD?= Date: Thu, 18 Jul 2024 20:10:55 +0200 Subject: [PATCH] pcx: fix crash on invalid files Added new PCX testfile for readtest. --- autotests/read/pcx/16color.pcx | Bin 0 -> 6228 bytes autotests/read/pcx/16color.png | Bin 0 -> 4378 bytes src/imageformats/pcx.cpp | 5 +++++ 3 files changed, 5 insertions(+) create mode 100644 autotests/read/pcx/16color.pcx create mode 100644 autotests/read/pcx/16color.png diff --git a/autotests/read/pcx/16color.pcx b/autotests/read/pcx/16color.pcx new file mode 100644 index 0000000000000000000000000000000000000000..acd59cc44a8708b7f3013c0d92a48b8fdf72b512 GIT binary patch literal 6228 zcmd5=ZE#fO6+U-^h|*$gBuk7V zWDOKKJ0fOzjF4}Dsz$UY2+!mQm}6-!h$}=f3K?G|eA6Zhj}fXHAfNH1b46pvV}x1{ zYpTJb8a6~Cj1U)c)Hn>+Fj<4hFV0XJbwe5^n+p_jsLB9>0OZB&A3%*LN#r0;=O|_X zQ2<~ZC8<}OQJx`wRZ(ad!@@9O0i-Z2Edd6?FjaEF8X&(E6XcmgE@oO>RT`zmd$@2I z2pfbE;i)t{9%e@1=~+yzv~ZXjkmNKf)f8wn#M4gk0_?S%*H|tJ9MBPRtei#xuhRyQ zHqGxE*o+Gsru#Mkr-qQo14?}^u##tf#KjlIBMH~g?a-VOd{TxJd_paHzf$*u1WyPJkWN#$4h+j_s{IZ zk`%xSPxJ6&8eS~F%Z2-6WT{Fn_6vHks~B)wY=9Piizmfn^C_g)g$Ftuk_Z`N#FY(b zO9uk@EfZ}$-~}vNfpftP@MIIPeuZ*q*YR>$o8N4r#v*tS;rV_!#<)xEZ0;kiwC)ysu*QLi!Lv#3Ka zV}Q=rf}T%O<>l8Dzf|O)$4L{7Lth%6ce#|O9l}|V6?~MZNw%RzTryX|&xA||9C8N` zTqST>VY)z>(G2i-KuP(j2QBCglI1waqV?EZ(qK6*PRfkAIG*wp zIgoIR5RV4t^koUVz!Pi;vrZ)ha!=67^;7PKayio*aYmk^iB(QrT;sH3&eL<@N6KL4 z3gXmjMw}%fimQg$Wc-=ZPQGghv9pkK}wqH^AG_;(c&>YK{tjMHL27}u>LB% zh_h)O_k{1p8kn0`I$#_(8mU(+Ju_dsCCwWHm zY!5yji8HIz7AML3!;AWBwfTkM<6)S4o7*^lFYK#!8v8yCe_6pknVMsd+dLg_KvraU zA(`M}pt9A?us7%rZ{aDGx-HqyCo@aSr90>&7b+Lm{DePI&9`xWC%>1urrvmhT!`|~ zo6~$+HQ&M$ySbS8aRa}vgA##AJdu|CIlpXsU0f#)wpQ4;@Dvw2nt4Jz>oWCgy-`nwy(B8l zSvwF9n-TDv;Xs(POC(DhXZK~CxLG0mX1R9AIHq^(%hb)=%EXpx7JIwYKE9+^$gQSK!ma(c6@is7w{H@2ZD#dS zmpn3u-0m!KZ$qP#YuiC>wWDrBy)9x(_uGZKtR2**?k6i2T!GbH>}bl z_C4v$w!M36Fp_BP<*CM`)rqoK=#|iol~cEI2cK*NM|Y`g9`i?kzUzS<{7EBEmUZ*! znx%S<9J{n~)LioRpueUS#b7g{bQ`7DY5Ml)V%L6B8n9q{BHpT3)FbI%)Zo2wir?Xr zD8KA3OozPb%dylYE8k(2w7W}6lY z;O{VF=*H{IG1}On0=>ahPt@hPh@EYGhWYE8R7apHz!QD9x}Fg4e-a^Y`8IW_=u<(S z=(%+>AC?S(6ke`mI?gy&M^i^rtij}H>F!VY9&{8{1vd6v>e5)S-W!0mN!WWXcFk2k zc%BQX2p_-zC=o;nLznI~LknEyr&U);{lc9x-1B?r>IDvFAiD!I(37e)*buVS-cUsy zJan0|`%(#0VeFef?c{UO>(TrpzvI`s`GX&BcFAi4v}lzyzp*P7yUviuyKuw}`}jz| z+FiB#fu3dk0v@FLF1+&&M)=q+wfnM?9SgM{^ZO|eck#=+)E;>HOaxkUk?mV`RUHpo zJle>km&ck-hKde8@|bVupVfxm)zy6$=_U+Pc?Tcsyx!^W*ig0WzMgNptqHB~;1CToR5Sdh@k zuVa>UZpGqwl+UO&PI4WV+slzYD@cx^W);5gw^!vF3t{5QwXRAm4F literal 0 HcmV?d00001 diff --git a/autotests/read/pcx/16color.png b/autotests/read/pcx/16color.png new file mode 100644 index 0000000000000000000000000000000000000000..0c840bc845612da4add9b83e93775f7a0f068cde GIT binary patch literal 4378 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