summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-04-14 16:05:57 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-04-14 16:07:39 +0200
commitb56fb9019e8d5eb6576d4ce254e01fe749ca0b92 (patch)
tree85ee1710f793192db99124c7c620b590e306caf6
parenta1b46fc15260ffeedbf67f4c08e5eda151667f38 (diff)
downloadphp-git-b56fb9019e8d5eb6576d4ce254e01fe749ca0b92.tar.gz
Don't leak peername if accept fails
Even if the accept fails, the peername may be populated.
-rw-r--r--ext/standard/streamsfuncs.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index 6fbfb0bcdc..493f3d0864 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -295,6 +295,9 @@ PHP_FUNCTION(stream_socket_accept)
}
php_stream_to_zval(clistream, return_value);
} else {
+ if (peername) {
+ zend_string_release(peername);
+ }
php_error_docref(NULL, E_WARNING, "accept failed: %s", errstr ? ZSTR_VAL(errstr) : "Unknown error");
RETVAL_FALSE;
}