From: Marcus Boerger Date: Mon, 26 Aug 2002 23:18:59 +0000 (+0000) Subject: fix fwrite to no longer apply stripslashes on input string when X-Git-Tag: RELEASE_0_91~226 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6063c8c4780ae0b9d0f5fddd68a8b51cb48fc406;p=php fix fwrite to no longer apply stripslashes on input string when magic_quotes_runtime is set On. --- 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); }