int ret, type;
int num_bytes;
void *what;
+ char *buffer = NULL;
switch (ZEND_NUM_ARGS()) {
case 2:
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);
}