helly Sat Jan 10 08:23:59 2004 EDT
Modified files:
/php-src/ext/libxml libxml.c php_libxml.h
Log:
Fix memory corruption with libxml's error handling.
Index: php-src/ext/libxml/libxml.c
diff -u php-src/ext/libxml/libxml.c:1.13 php-src/ext/libxml/libxml.c:1.14
--- php-src/ext/libxml/libxml.c:1.13 Thu Jan 8 03:15:56 2004
+++ php-src/ext/libxml/libxml.c Sat Jan 10 08:23:58 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: libxml.c,v 1.13 2004/01/08 08:15:56 andi Exp $ */
+/* $Id: libxml.c,v 1.14 2004/01/10 13:23:58 helly Exp $ */
#define IS_EXT_MODULE
@@ -225,7 +225,7 @@
static void php_libxml_init_globals(php_libxml_globals *libxml_globals_p TSRMLS_DC)
{
LIBXML(stream_context) = NULL;
- LIBXML(error_buffer) = NULL;
+ LIBXML(error_buffer).c = NULL;
}
#endif
@@ -336,16 +336,15 @@
if (output == 1) {
switch (error_type) {
case PHP_LIBXML_CTX_ERROR:
- php_libxml_ctx_error_level(E_WARNING, ctx, (char *)
LIBXML(error_buffer) TSRMLS_CC);
+ php_libxml_ctx_error_level(E_WARNING, ctx,
LIBXML(error_buffer).c TSRMLS_CC);
break;
case PHP_LIBXML_CTX_WARNING:
- php_libxml_ctx_error_level(E_NOTICE, ctx, (char *)
LIBXML(error_buffer) TSRMLS_CC);
+ php_libxml_ctx_error_level(E_NOTICE, ctx,
LIBXML(error_buffer).c TSRMLS_CC);
break;
default:
- php_error(E_WARNING, "%s", (char *)
LIBXML(error_buffer));
+ php_error(E_WARNING, "%s", LIBXML(error_buffer).c);
}
smart_str_free(&LIBXML(error_buffer));
- LIBXML(error_buffer) = NULL;
}
}
@@ -419,7 +418,7 @@
ts_allocate_id(&libxml_globals_id, sizeof(php_libxml_globals),
(ts_allocate_ctor) php_libxml_init_globals, NULL);
#else
LIBXML(stream_context) = NULL;
- LIBXML(error_buffer) = NULL;
+ LIBXML(error_buffer).c = NULL;
#endif
return SUCCESS;
@@ -441,10 +440,7 @@
PHP_RSHUTDOWN_FUNCTION(libxml)
{
- if (LIBXML(error_buffer)) {
- smart_str_free(&LIBXML(error_buffer));
- LIBXML(error_buffer) = NULL;
- }
+ smart_str_free(&LIBXML(error_buffer));
return SUCCESS;
}
Index: php-src/ext/libxml/php_libxml.h
diff -u php-src/ext/libxml/php_libxml.h:1.6 php-src/ext/libxml/php_libxml.h:1.7
--- php-src/ext/libxml/php_libxml.h:1.6 Thu Jan 8 12:32:20 2004
+++ php-src/ext/libxml/php_libxml.h Sat Jan 10 08:23:58 2004
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_libxml.h,v 1.6 2004/01/08 17:32:20 sniper Exp $ */
+/* $Id: php_libxml.h,v 1.7 2004/01/10 13:23:58 helly Exp $ */
#ifndef PHP_LIBXML_H
#define PHP_LIBXML_H
@@ -42,7 +42,7 @@
typedef struct {
zval *stream_context;
- smart_str *error_buffer;
+ smart_str error_buffer;
} php_libxml_globals;
typedef struct _php_libxml_ref_obj {
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php