diff options
author | Marcus Boerger <helly@php.net> | 2002-08-26 23:18:59 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2002-08-26 23:18:59 +0000 |
commit | 6063c8c4780ae0b9d0f5fddd68a8b51cb48fc406 (patch) | |
tree | ea3046001bf6dde5bbfbef340146100a6c6db6cf | |
parent | f0b492b88db260ef7a2e47a537e975ec7f21c1a7 (diff) | |
download | php-git-6063c8c4780ae0b9d0f5fddd68a8b51cb48fc406.tar.gz |
fix fwrite to no longer apply stripslashes on input string when
magic_quotes_runtime is set On.
-rw-r--r-- | ext/standard/file.c | 10 |
1 files 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); } |