diff options
Diffstat (limited to 'main/libxml2/zlib.patch')
-rw-r--r-- | main/libxml2/zlib.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/main/libxml2/zlib.patch b/main/libxml2/zlib.patch new file mode 100644 index 000000000..4bf486d12 --- /dev/null +++ b/main/libxml2/zlib.patch @@ -0,0 +1,32 @@ +From a7e79f28689c574e0bbef17f4cb3da00249181ff Mon Sep 17 00:00:00 2001 +From: Mark Adler <madler@alumni.caltech.edu> +Date: Tue, 19 Jan 2010 15:28:48 +0000 +Subject: libxml violates the zlib interface and crashes + +* xmlIO.c: remove an abuse of zlib API and use a clean interface + available in zlib >= 1.2.3 +--- +diff --git a/xmlIO.c b/xmlIO.c +index c03ac43..8fc00e3 100644 +--- a/xmlIO.c ++++ b/xmlIO.c +@@ -2518,6 +2518,9 @@ __xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) { + #ifdef HAVE_ZLIB_H + if ((xmlInputCallbackTable[i].opencallback == xmlGzfileOpen) && + (strcmp(URI, "-") != 0)) { ++#if defined(ZLIB_VERNUM) && ZLIB_VERNUM >= 0x1230 ++ ret->compressed = !gzdirect(context); ++#else + if (((z_stream *)context)->avail_in > 4) { + char *cptr, buff4[4]; + cptr = (char *) ((z_stream *)context)->next_in; +@@ -2529,6 +2532,7 @@ __xmlParserInputBufferCreateFilename(const char *URI, xmlCharEncoding enc) { + gzrewind(context); + } + } ++#endif + } + #endif + } +-- +cgit v0.8.3.1 |