summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Adler <madler@alumni.caltech.edu>2016-09-21 20:07:37 -0700
committerMark Adler <madler@alumni.caltech.edu>2016-09-21 20:34:04 -0700
commit3fb251b363866417122fe54a158a1ac5a7837101 (patch)
treea4cd8da8fa279c66c533b0008192cb8da55bd5e0
parent33a7aff45da511c3fc181071394ad9a01d5e8d61 (diff)
downloadzlib-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.c4
-rw-r--r--zconf.h5
-rw-r--r--zconf.h.cmakein5
-rw-r--r--zconf.h.in5
-rw-r--r--zlib.h5
-rw-r--r--zutil.c4
6 files changed, 0 insertions, 28 deletions
diff --git a/deflate.c b/deflate.c
index daab31a..804189d 100644
--- a/deflate.c
+++ b/deflate.c
@@ -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
155struct 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
diff --git a/zconf.h b/zconf.h
index 9987a77..0a4828e 100644
--- a/zconf.h
+++ b/zconf.h
@@ -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
diff --git a/zconf.h.in b/zconf.h.in
index 9987a77..0a4828e 100644
--- a/zconf.h.in
+++ b/zconf.h.in
@@ -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/zlib.h b/zlib.h
index 67cfd7e..571847e 100644
--- a/zlib.h
+++ b/zlib.h
@@ -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 */
1768ZEXTERN const char * ZEXPORT zError OF((int)); 1763ZEXTERN const char * ZEXPORT zError OF((int));
1769ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); 1764ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp));
diff --git a/zutil.c b/zutil.c
index 167ed5f..a6b887e 100644
--- a/zutil.c
+++ b/zutil.c
@@ -10,10 +10,6 @@
10# include "gzguts.h" 10# include "gzguts.h"
11#endif 11#endif
12 12
13#ifndef NO_DUMMY_DECL
14struct internal_state {int dummy;}; /* for buggy compilers */
15#endif
16
17z_const char * const z_errmsg[10] = { 13z_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 */