summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/streamsfuncs.c2
-rw-r--r--ext/standard/tests/streams/bug72534.phpt19
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)
+