Skip to content

Commit

Permalink
Make deflateBound() more conservative and handle Z_STREAM_END.
Browse files Browse the repository at this point in the history
  • Loading branch information
madler committed Mar 10, 2024
1 parent 72d6aa2 commit a8c321b
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions deflate.c
Original file line number Diff line number Diff line change
Expand Up @@ -846,13 +846,13 @@ uLong ZEXPORT deflateBound(z_streamp strm, uLong sourceLen) {
storelen = sourceLen + (sourceLen >> 5) + (sourceLen >> 7) +
(sourceLen >> 11) + 7;

/* if can't get parameters, return larger bound plus a zlib wrapper */
/* if can't get parameters, return larger bound plus a wrapper */
if (deflateStateCheck(strm))
return (fixedlen > storelen ? fixedlen : storelen) + 6;
return (fixedlen > storelen ? fixedlen : storelen) + 18;

/* compute wrapper length */
s = strm->state;
switch (s->wrap) {
switch (s->wrap < 0 ? -s->wrap : s->wrap) {
case 0: /* raw deflate */
wraplen = 0;
break;
Expand Down Expand Up @@ -882,7 +882,7 @@ uLong ZEXPORT deflateBound(z_streamp strm, uLong sourceLen) {
break;
#endif
default: /* for compiler happiness */
wraplen = 6;
wraplen = 18;
}

/* if not default parameters, return one of the conservative bounds */
Expand Down

0 comments on commit a8c321b

Please sign in to comment.