diff options
-rw-r--r-- | ext/standard/streamsfuncs.c | 2 | ||||
-rw-r--r-- | ext/standard/tests/streams/bug72534.phpt | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 0e5d0ce79e..971bfed3b1 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -322,7 +322,7 @@ PHP_FUNCTION(stream_socket_get_name) if (0 != php_stream_xport_get_name(stream, want_peer, &name, NULL, NULL - )) { + ) || !name) { RETURN_FALSE; } diff --git a/ext/standard/tests/streams/bug72534.phpt b/ext/standard/tests/streams/bug72534.phpt new file mode 100644 index 0000000000..38e1208a37 --- /dev/null +++ b/ext/standard/tests/streams/bug72534.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #72534 stream_socket_get_name crashes +--FILE-- +<?php +$fname = dirname(__FILE__) . '/aa.tmp'; +$fp0 = fopen($fname, 'w'); +var_dump(stream_socket_get_name($fp0, false)); +var_dump(stream_socket_get_name($fp0, true)); +fclose($fp0); +?> +--CLEAN-- +<?php +$fname = dirname(__FILE__) . '/aa.tmp'; +unlink($fname); +?> +--EXPECT-- +bool(false) +bool(false) + |