diff options
-rw-r--r-- | ext/standard/file.c | 4 | ||||
-rw-r--r-- | ext/standard/tests/file/bug71287.phpt | 19 |
2 files changed, 21 insertions, 2 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c index 4f3a6abd11..26f5c161ce 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -642,7 +642,7 @@ PHP_FUNCTION(file_put_contents) if (Z_STRLEN_P(data)) { numbytes = php_stream_write(stream, Z_STRVAL_P(data), Z_STRLEN_P(data)); if (numbytes != Z_STRLEN_P(data)) { - php_error_docref(NULL, E_WARNING, "Only %pl of %zd bytes written, possibly out of free disk space", numbytes, Z_STRLEN_P(data)); + php_error_docref(NULL, E_WARNING, "Only "ZEND_LONG_FMT" of %zd bytes written, possibly out of free disk space", numbytes, Z_STRLEN_P(data)); numbytes = -1; } } @@ -677,7 +677,7 @@ PHP_FUNCTION(file_put_contents) if (zend_std_cast_object_tostring(data, &out, IS_STRING) == SUCCESS) { numbytes = php_stream_write(stream, Z_STRVAL(out), Z_STRLEN(out)); if (numbytes != Z_STRLEN(out)) { - php_error_docref(NULL, E_WARNING, "Only %pd of %zd bytes written, possibly out of free disk space", numbytes, Z_STRLEN(out)); + php_error_docref(NULL, E_WARNING, "Only "ZEND_LONG_FMT" of %zd bytes written, possibly out of free disk space", numbytes, Z_STRLEN(out)); numbytes = -1; } zval_dtor(&out); diff --git a/ext/standard/tests/file/bug71287.phpt b/ext/standard/tests/file/bug71287.phpt new file mode 100644 index 0000000000..b7987829b0 --- /dev/null +++ b/ext/standard/tests/file/bug71287.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #71287 (Error message contains hexadecimal instead of decimal number) +--FILE-- +<?php +class Stream { + public function stream_open($path, $mode, $options, $opened_path) { + return true; + } + + public function stream_write($data) { + return strlen($data) - 2; + } +} + +stream_wrapper_register('test', Stream::class); +file_put_contents('test://file.txt', 'foobarbaz'); +?> +--EXPECTF-- +Warning: file_put_contents(): Only 7 of 9 bytes written, possibly out of free disk space in %sbug71287.php on line %d |