diff options
author | Mark Adler <madler@alumni.caltech.edu> | 2016-09-21 20:07:37 -0700 |
---|---|---|
committer | Mark Adler <madler@alumni.caltech.edu> | 2016-09-21 20:34:04 -0700 |
commit | 3fb251b363866417122fe54a158a1ac5a7837101 (patch) | |
tree | a4cd8da8fa279c66c533b0008192cb8da55bd5e0 | |
parent | 33a7aff45da511c3fc181071394ad9a01d5e8d61 (diff) | |
download | zlib-3fb251b363866417122fe54a158a1ac5a7837101.tar.gz zlib-3fb251b363866417122fe54a158a1ac5a7837101.tar.bz2 zlib-3fb251b363866417122fe54a158a1ac5a7837101.zip |
Remove dummy structure declarations for old buggy compilers.
While woolly mammoths still roamed the Earth and before Atlantis
sunk into the ocean, there were C compilers that could not handle
forward structure references, e.g. "struct name;". zlib dutifully
provided a work-around for such compilers. That work-around is no
longer needed, and, per the recommendation of a security audit of
the zlib code by Trail of Bits and TrustInSoft, in support of the
Mozilla Foundation, should be removed since what a compiler will
do with this is technically undefined. From the report: "there is
no telling what interactions the bug could have in the future with
link-time optimizations and type-based alias analyses, both
features that are present (but not default) in clang."
-rw-r--r-- | deflate.c | 4 | ||||
-rw-r--r-- | zconf.h | 5 | ||||
-rw-r--r-- | zconf.h.cmakein | 5 | ||||
-rw-r--r-- | zconf.h.in | 5 | ||||
-rw-r--r-- | zlib.h | 5 | ||||
-rw-r--r-- | zutil.c | 4 |
6 files changed, 0 insertions, 28 deletions
@@ -151,10 +151,6 @@ local const config configuration_table[10] = { | |||
151 | #define EQUAL 0 | 151 | #define EQUAL 0 |
152 | /* result of memcmp for equal strings */ | 152 | /* result of memcmp for equal strings */ |
153 | 153 | ||
154 | #ifndef NO_DUMMY_DECL | ||
155 | struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ | ||
156 | #endif | ||
157 | |||
158 | /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */ | 154 | /* rank Z_BLOCK between Z_NO_FLUSH and Z_PARTIAL_FLUSH */ |
159 | #define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0)) | 155 | #define RANK(f) (((f) * 2) - ((f) > 4 ? 9 : 0)) |
160 | 156 | ||
@@ -224,11 +224,6 @@ | |||
224 | # define z_const | 224 | # define z_const |
225 | #endif | 225 | #endif |
226 | 226 | ||
227 | /* Some Mac compilers merge all .h files incorrectly: */ | ||
228 | #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) | ||
229 | # define NO_DUMMY_DECL | ||
230 | #endif | ||
231 | |||
232 | /* Maximum value for memLevel in deflateInit2 */ | 227 | /* Maximum value for memLevel in deflateInit2 */ |
233 | #ifndef MAX_MEM_LEVEL | 228 | #ifndef MAX_MEM_LEVEL |
234 | # ifdef MAXSEG_64K | 229 | # ifdef MAXSEG_64K |
diff --git a/zconf.h.cmakein b/zconf.h.cmakein index 043019c..752eb88 100644 --- a/zconf.h.cmakein +++ b/zconf.h.cmakein | |||
@@ -226,11 +226,6 @@ | |||
226 | # define z_const | 226 | # define z_const |
227 | #endif | 227 | #endif |
228 | 228 | ||
229 | /* Some Mac compilers merge all .h files incorrectly: */ | ||
230 | #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) | ||
231 | # define NO_DUMMY_DECL | ||
232 | #endif | ||
233 | |||
234 | /* Maximum value for memLevel in deflateInit2 */ | 229 | /* Maximum value for memLevel in deflateInit2 */ |
235 | #ifndef MAX_MEM_LEVEL | 230 | #ifndef MAX_MEM_LEVEL |
236 | # ifdef MAXSEG_64K | 231 | # ifdef MAXSEG_64K |
@@ -224,11 +224,6 @@ | |||
224 | # define z_const | 224 | # define z_const |
225 | #endif | 225 | #endif |
226 | 226 | ||
227 | /* Some Mac compilers merge all .h files incorrectly: */ | ||
228 | #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) | ||
229 | # define NO_DUMMY_DECL | ||
230 | #endif | ||
231 | |||
232 | /* Maximum value for memLevel in deflateInit2 */ | 227 | /* Maximum value for memLevel in deflateInit2 */ |
233 | #ifndef MAX_MEM_LEVEL | 228 | #ifndef MAX_MEM_LEVEL |
234 | # ifdef MAXSEG_64K | 229 | # ifdef MAXSEG_64K |
@@ -1759,11 +1759,6 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ | |||
1759 | 1759 | ||
1760 | #endif /* !Z_SOLO */ | 1760 | #endif /* !Z_SOLO */ |
1761 | 1761 | ||
1762 | /* hack for buggy compilers */ | ||
1763 | #if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL) | ||
1764 | struct internal_state {int dummy;}; | ||
1765 | #endif | ||
1766 | |||
1767 | /* undocumented functions */ | 1762 | /* undocumented functions */ |
1768 | ZEXTERN const char * ZEXPORT zError OF((int)); | 1763 | ZEXTERN const char * ZEXPORT zError OF((int)); |
1769 | ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); | 1764 | ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); |
@@ -10,10 +10,6 @@ | |||
10 | # include "gzguts.h" | 10 | # include "gzguts.h" |
11 | #endif | 11 | #endif |
12 | 12 | ||
13 | #ifndef NO_DUMMY_DECL | ||
14 | struct internal_state {int dummy;}; /* for buggy compilers */ | ||
15 | #endif | ||
16 | |||
17 | z_const char * const z_errmsg[10] = { | 13 | z_const char * const z_errmsg[10] = { |
18 | "need dictionary", /* Z_NEED_DICT 2 */ | 14 | "need dictionary", /* Z_NEED_DICT 2 */ |
19 | "stream end", /* Z_STREAM_END 1 */ | 15 | "stream end", /* Z_STREAM_END 1 */ |