blob: 4bf486d1276c0efc39474503a0c26a2afee55e94 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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
|