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 */ |
