summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/zlib/files/zlib-1.1.4-gentoo.security.patch')
-rw-r--r--sys-libs/zlib/files/zlib-1.1.4-gentoo.security.patch352
1 files changed, 0 insertions, 352 deletions
diff --git a/sys-libs/zlib/files/zlib-1.1.4-gentoo.security.patch b/sys-libs/zlib/files/zlib-1.1.4-gentoo.security.patch
deleted file mode 100644
index e057098ccf55..000000000000
--- a/sys-libs/zlib/files/zlib-1.1.4-gentoo.security.patch
+++ /dev/null
@@ -1,352 +0,0 @@
-diff -Naur zlib-1.1.4/ChangeLog zlib-1.1.4-vsnprintf/ChangeLog
---- zlib-1.1.4/ChangeLog 2002-03-11 15:02:35.000000000 +0000
-+++ zlib-1.1.4-vsnprintf/ChangeLog 2003-02-24 05:31:41.000000000 +0000
-@@ -1,6 +1,13 @@
-
- ChangeLog file for zlib
-
-+Changes in 1.1.4-patched (23 February 2003)
-+- fix a security vulnerability related to improper use of snprintf/vsnprintf
-+ function.
-+- ./configure now detects the presence of snprintf/vsnprintf and enables it
-+ automatically if present.
-+- README.vsnprintf added.
-+
- Changes in 1.1.4 (11 March 2002)
- - ZFREE was repeated on same allocation on some error conditions.
- This creates a security problem described in
-diff -Naur zlib-1.1.4/README.vsnprintf zlib-1.1.4-vsnprintf/README.vsnprintf
---- zlib-1.1.4/README.vsnprintf 1970-01-01 00:00:00.000000000 +0000
-+++ zlib-1.1.4-vsnprintf/README.vsnprintf 2003-02-24 05:13:28.000000000 +0000
-@@ -0,0 +1,23 @@
-+During a recent audit of zlib-1.1.4, a buffer-overflow and string-format
-+vulnerability was found in the gzprintf() function. This has been corrected in
-+this version of zlib; in addition, some ./configure checks have been added to
-+make sure the host system can utilize the corrections fully.
-+
-+As a result, it is now strongly recommended that your host system or compiler
-+provide a fully C99-compliant implementation of the vsnprintf() function.
-+Anything less will reduce the functionality and/or security of the gzprintf()
-+function. The most critical aspect is that vsnprintf() should be present and
-+should provide a return value. If this function is missing, one of the
-+fallback functions (vsprintf(), snprintf(), vsnprintf()) will have to be used,
-+and if so, they too should return a value. If your system is lacking in any of
-+these aspects, the ./configure script should warn you and refer you to this
-+file.
-+
-+In addition, the HAS_vsnprintf and HAS_snprintf macros are automatically
-+defined if these functions are available. zlib-1.1.4 and older versions did
-+not do this, potentially leading to a broken and vulnerable zlib even when the
-+host system supported the requisite functionality to avoid this.
-+
-+
-+ -- Kelledin <kelledin@users.sourceforge.net>
-+
-diff -Naur zlib-1.1.4/configure zlib-1.1.4-vsnprintf/configure
---- zlib-1.1.4/configure 1998-07-08 18:19:35.000000000 +0000
-+++ zlib-1.1.4-vsnprintf/configure 2003-02-24 05:13:28.000000000 +0000
-@@ -156,6 +156,209 @@
- fi
-
- cat > $test.c <<EOF
-+#include <stdio.h>
-+
-+#if (defined(__MSDOS__) || defined(_WINDOWS) || defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)) && !defined(STDC)
-+# define STDC
-+#endif
-+
-+int main() {
-+ int i;
-+
-+ i=0;
-+#ifndef STDC
-+ choke me
-+#endif
-+
-+ return 0;
-+}
-+EOF
-+
-+if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ echo "Checking whether to use vsnprintf() or snprintf()... using vsnprintf()"
-+
-+ cat > $test.c <<EOF
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+int mytest(char *fmt, ...) {
-+ char buf[20];
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ vsnprintf(buf, sizeof(buf), fmt, ap);
-+ return 0;
-+}
-+
-+int main() {
-+ return (mytest("Hello%d\n", 1));
-+}
-+EOF
-+
-+ if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ CFLAGS="$CFLAGS -DHAS_vsnprintf"
-+ echo "Checking for vsnprintf() in stdio.h... Yes."
-+
-+ cat > $test.c <<EOF
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+int mytest(char *fmt, ...) {
-+ int i;
-+ char buf[20];
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ i=vsnprintf(buf, sizeof(buf), fmt, ap);
-+ return 0;
-+}
-+
-+int main() {
-+ return (mytest("Hello%d\n", 1));
-+}
-+EOF
-+
-+ if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ CFLAGS="$CFLAGS -DHAS_vsnprintf_return"
-+ echo "Checking for return value of vsnprintf()... Yes."
-+ else
-+ echo "Checking for return value of vsnprintf()... No."
-+ echo " WARNING: apparently vsnprintf() does not return a value. zlib"
-+ echo " can build but will be open to possible string-format security"
-+ echo " vulnerabilities. See README.vsnprintf for more info."
-+ echo
-+ fi
-+ else
-+ echo "Checking for vsnprintf() in stdio.h... No."
-+ echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib"
-+ echo " can build but will be open to possible buffer-overflow security"
-+ echo " vulnerabilities. See README.vsnprintf for more info."
-+ echo
-+
-+ cat > $test.c <<EOF
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+int mytest(char *fmt, ...) {
-+ int i;
-+ char buf[20];
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ i=vsprintf(buf, fmt, ap);
-+ return 0;
-+}
-+
-+int main() {
-+ return (mytest("Hello%d\n", 1));
-+}
-+EOF
-+
-+ if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ CFLAGS="$CFLAGS -DHAS_vsprintf_return"
-+ echo "Checking for return value of vsprintf()... Yes."
-+ else
-+ echo "Checking for return value of vsprintf()... No."
-+ echo " WARNING: apparently vsprintf() does not return a value. zlib"
-+ echo " can build but will be open to possible string-format security"
-+ echo " vulnerabilities. See README.vsnprintf for more info."
-+ echo
-+ fi
-+ fi
-+else
-+ echo "Checking whether to use vsnprintf() or snprintf()... using snprintf()"
-+
-+ cat > $test.c <<EOF
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+int mytest() {
-+ char buf[20];
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ snprintf(buf, sizeof(buf), fmt, ap);
-+ return 0;
-+}
-+
-+int main() {
-+ return (mytest());
-+}
-+EOF
-+
-+ if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ CFLAGS="$CFLAGS -DHAS_snprintf"
-+ echo "Checking for snprintf() in stdio.h... Yes."
-+
-+ cat > $test.c <<EOF
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+int mytest() {
-+ int i;
-+ char buf[20];
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ i=snprintf(buf, sizeof(buf), fmt, ap);
-+ return 0;
-+}
-+
-+int main() {
-+ return (mytest());
-+}
-+EOF
-+
-+ if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ CFLAGS="$CFLAGS -DHAS_snprintf_return"
-+ echo "Checking for return value of snprintf()... Yes."
-+ else
-+ echo "Checking for return value of snprintf()... No."
-+ echo " WARNING: apparently snprintf() does not return a value. zlib"
-+ echo " can build but will be open to possible string-format security"
-+ echo " vulnerabilities. See README.vsnprintf for more info."
-+ echo
-+ fi
-+ else
-+ echo "Checking for snprintf() in stdio.h... No."
-+ echo " WARNING: snprintf() not found, falling back to sprintf(). zlib"
-+ echo " can build but will be open to possible buffer-overflow security"
-+ echo " vulnerabilities. See README.vsnprintf for more info."
-+ echo
-+
-+ cat > $test.c <<EOF
-+#include <stdio.h>
-+#include <stdarg.h>
-+
-+int mytest() {
-+ int i;
-+ char buf[20];
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ i=sprintf(buf, fmt, ap);
-+ return 0;
-+}
-+
-+int main() {
-+ return (mytest());
-+}
-+EOF
-+
-+ if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then
-+ CFLAGS="$CFLAGS -DHAS_sprintf_return"
-+ echo "Checking for return value of sprintf()... Yes."
-+ else
-+ echo "Checking for return value of sprintf()... No."
-+ echo " WARNING: apparently sprintf() does not return a value. zlib"
-+ echo " can build but will be open to possible string-format security"
-+ echo " vulnerabilities. See README.vsnprintf for more info."
-+ echo
-+ fi
-+ fi
-+fi
-+
-+cat > $test.c <<EOF
- #include <errno.h>
- int main() { return 0; }
- EOF
-diff -Naur zlib-1.1.4/gzio.c zlib-1.1.4-vsnprintf/gzio.c
---- zlib-1.1.4/gzio.c 2002-03-11 13:16:01.000000000 +0000
-+++ zlib-1.1.4-vsnprintf/gzio.c 2003-02-24 05:18:44.000000000 +0000
-@@ -529,14 +529,42 @@
- int len;
-
- va_start(va, format);
-+
-+ /* 2003/02/23: Add proper length checking here, if possible.
-+ *
-+ * -- Kelledin
-+ */
- #ifdef HAS_vsnprintf
-- (void)vsnprintf(buf, sizeof(buf), format, va);
-+# ifdef HAS_vsnprintf_return
-+ len=vsnprintf(buf, sizeof(buf), format, va);
-+ va_end(va);
-+
-+ if (len <= 0 || len >= sizeof(buf)) {
-+ /* Resulting string too large to fit in the buffer. */
-+ return 0;
-+ }
-+# else
-+ vsnprintf(buf, sizeof(buf), format, va);
-+ va_end(va);
-+ len=strlen(buf);
-+ if (len <= 0) return 0;
-+# endif
- #else
-- (void)vsprintf(buf, format, va);
--#endif
-+# ifdef HAS_vsprintf_return
-+ len=vsprintf(buf, format, va);
-+ va_end(va);
-+
-+ if (len <= 0 || len >= sizeof(buf)) {
-+ /* Resulting string too large to fit in the buffer. */
-+ return 0;
-+ }
-+# else
-+ vsprintf(buf, format, va);
- va_end(va);
-- len = strlen(buf); /* some *sprintf don't return the nb of bytes written */
-+ len=strlen(buf);
- if (len <= 0) return 0;
-+# endif
-+#endif
-
- return gzwrite(file, buf, (unsigned)len);
- }
-@@ -552,15 +580,41 @@
- char buf[Z_PRINTF_BUFSIZE];
- int len;
-
-+ /* 2003/02/23: Add proper length checking here when possible.
-+ *
-+ * -- Kelledin
-+ */
- #ifdef HAS_snprintf
-+# ifdef HAS_snprintf_return
-+ len=snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
-+ a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-+
-+ if (len <= 0 || len >= sizeof(buf)) {
-+ /* Resulting string too large to fit in the buffer. */
-+ return 0;
-+ }
-+# else
- snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-+ len=strlen(buf);
-+ if (len <= 0) return 0;
-+# endif
- #else
-+# ifdef HAS_sprintf_return
-+ len=sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
-+ a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
-+
-+ if (len <= 0 || len >= sizeof(buf)) {
-+ /* Resulting string too large to fit in the buffer. */
-+ return 0;
-+ }
-+# else
- sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
- a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
--#endif
-- len = strlen(buf); /* old sprintf doesn't return the nb of bytes written */
-+ len=strlen(buf);
- if (len <= 0) return 0;
-+# endif
-+#endif
-
- return gzwrite(file, buf, len);
- }
-