|
|
- --- a/extract.c
- +++ b/extract.c
- @@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G
- if (G.lrec.compression_method == STORED) {
- zusz_t csiz_decrypted = G.lrec.csize;
-
- - if (G.pInfo->encrypted)
- + if (G.pInfo->encrypted) {
- + if (csiz_decrypted <= 12) {
- + /* handle the error now to prevent unsigned overflow */
- + Info(slide, 0x401, ((char *)slide,
- + LoadFarStringSmall(ErrUnzipNoFile),
- + LoadFarString(InvalidComprData),
- + LoadFarStringSmall2(Inflate)));
- + return PK_ERR;
- + }
- csiz_decrypted -= 12;
- + }
- if (G.lrec.ucsize != csiz_decrypted) {
- Info(slide, 0x401, ((char *)slide,
- LoadFarStringSmall2(WrnStorUCSizCSizDiff),
|