[libxml2] libxml violates the zlib interface and crashes



commit a7e79f28689c574e0bbef17f4cb3da00249181ff
Author: Mark Adler <madler alumni caltech edu>
Date:   Tue Jan 19 16:28:48 2010 +0100

    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

 xmlIO.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
---
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
     }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]