From 800cf5a20f09baf243c0b7205f827a46bd4904f0 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 11 Nov 2020 12:48:25 +0100 Subject: Fix double free when socket_accept fails --- ext/sockets/sockets.c | 1 - ext/sockets/tests/socket_accept_failure.phpt | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 ext/sockets/tests/socket_accept_failure.phpt (limited to 'ext/sockets') diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c index 0b21c4f684..6118610cac 100644 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@ -272,7 +272,6 @@ static int php_accept_connect(php_socket *in_sock, php_socket *out_sock, struct if (IS_INVALID_SOCKET(out_sock)) { PHP_SOCKET_ERROR(out_sock, "unable to accept incoming connection", errno); - efree(out_sock); return 0; } diff --git a/ext/sockets/tests/socket_accept_failure.phpt b/ext/sockets/tests/socket_accept_failure.phpt new file mode 100644 index 0000000000..522987469b --- /dev/null +++ b/ext/sockets/tests/socket_accept_failure.phpt @@ -0,0 +1,12 @@ +--TEST-- +socket_accept() failure +--FILE-- + +--EXPECTF-- +Warning: socket_accept(): unable to accept incoming connection [%d]: %s in %s on line %d +bool(false) -- cgit v1.2.1