From 6063c8c4780ae0b9d0f5fddd68a8b51cb48fc406 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Mon, 26 Aug 2002 23:18:59 +0000 Subject: [PATCH] fix fwrite to no longer apply stripslashes on input string when magic_quotes_runtime is set On. --- ext/standard/file.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/standard/file.c b/ext/standard/file.c index d02e86d5ca..84cc8020e7 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1320,6 +1320,7 @@ PHPAPI PHP_FUNCTION(fwrite) int ret, type; int num_bytes; void *what; + char *buffer = NULL; switch (ZEND_NUM_ARGS()) { case 2: @@ -1347,11 +1348,14 @@ PHPAPI PHP_FUNCTION(fwrite) ZEND_VERIFY_RESOURCE(what); if (!arg3 && PG(magic_quotes_runtime)) { - zval_copy_ctor(*arg2); - php_stripslashes(Z_STRVAL_PP(arg2), &num_bytes TSRMLS_CC); + buffer = estrndup(Z_STRVAL_PP(arg2), Z_STRLEN_PP(arg2)); + php_stripslashes(buffer, &num_bytes TSRMLS_CC); } - ret = php_stream_write((php_stream *) what, Z_STRVAL_PP(arg2), num_bytes); + ret = php_stream_write((php_stream *) what, buffer ? buffer : Z_STRVAL_PP(arg2), num_bytes); + if (buffer) { + efree(buffer); + } RETURN_LONG(ret); } -- 2.50.1