diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-04-14 16:05:57 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-04-14 16:07:39 +0200 |
commit | b56fb9019e8d5eb6576d4ce254e01fe749ca0b92 (patch) | |
tree | 85ee1710f793192db99124c7c620b590e306caf6 | |
parent | a1b46fc15260ffeedbf67f4c08e5eda151667f38 (diff) | |
download | php-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.c | 3 |
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; } |