diff options
| author | Mark Adler <madler@alumni.caltech.edu> | 2024-02-29 17:55:08 -0800 |
|---|---|---|
| committer | Mark Adler <madler@alumni.caltech.edu> | 2024-03-09 23:53:37 -0800 |
| commit | a8c321be84c6669256a2b6f1a3ff1e3eebc28594 (patch) | |
| tree | e4ede84beb77764f226f1b7f6fe34ab715c0ce7b | |
| parent | 72d6aa2672c91d10f8f58ee796ed8d44325faca4 (diff) | |
| download | zlib-a8c321be84c6669256a2b6f1a3ff1e3eebc28594.tar.gz zlib-a8c321be84c6669256a2b6f1a3ff1e3eebc28594.tar.bz2 zlib-a8c321be84c6669256a2b6f1a3ff1e3eebc28594.zip | |
Make deflateBound() more conservative and handle Z_STREAM_END.
| -rw-r--r-- | deflate.c | 8 |
1 files changed, 4 insertions, 4 deletions
| @@ -846,13 +846,13 @@ uLong ZEXPORT deflateBound(z_streamp strm, uLong sourceLen) { | |||
| 846 | storelen = sourceLen + (sourceLen >> 5) + (sourceLen >> 7) + | 846 | storelen = sourceLen + (sourceLen >> 5) + (sourceLen >> 7) + |
| 847 | (sourceLen >> 11) + 7; | 847 | (sourceLen >> 11) + 7; |
| 848 | 848 | ||
| 849 | /* if can't get parameters, return larger bound plus a zlib wrapper */ | 849 | /* if can't get parameters, return larger bound plus a wrapper */ |
| 850 | if (deflateStateCheck(strm)) | 850 | if (deflateStateCheck(strm)) |
| 851 | return (fixedlen > storelen ? fixedlen : storelen) + 6; | 851 | return (fixedlen > storelen ? fixedlen : storelen) + 18; |
| 852 | 852 | ||
| 853 | /* compute wrapper length */ | 853 | /* compute wrapper length */ |
| 854 | s = strm->state; | 854 | s = strm->state; |
| 855 | switch (s->wrap) { | 855 | switch (s->wrap < 0 ? -s->wrap : s->wrap) { |
| 856 | case 0: /* raw deflate */ | 856 | case 0: /* raw deflate */ |
| 857 | wraplen = 0; | 857 | wraplen = 0; |
| 858 | break; | 858 | break; |
| @@ -882,7 +882,7 @@ uLong ZEXPORT deflateBound(z_streamp strm, uLong sourceLen) { | |||
| 882 | break; | 882 | break; |
| 883 | #endif | 883 | #endif |
| 884 | default: /* for compiler happiness */ | 884 | default: /* for compiler happiness */ |
| 885 | wraplen = 6; | 885 | wraplen = 18; |
| 886 | } | 886 | } |
| 887 | 887 | ||
| 888 | /* if not default parameters, return one of the conservative bounds */ | 888 | /* if not default parameters, return one of the conservative bounds */ |
