]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.4'
authorNikita Popov <nikita.ppv@gmail.com>
Wed, 5 Aug 2020 14:42:40 +0000 (16:42 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 5 Aug 2020 14:42:55 +0000 (16:42 +0200)
* PHP-7.4:
  Fix memory leak on socket_sendmsg() / socket_recvmsg() error

1  2 
ext/sockets/sendrecvmsg.c
ext/sockets/tests/socket_sendrecvmsg_error.phpt

index 9e97cf00e20d9e51339568aefd7ae7d7b2b03689,b5f17a5ad45918c54f21624ef72cd1ebc03cc70f..f03fdb0c638a83db3bb41124afc7baf340cf93e0
@@@ -257,14 -263,15 +255,15 @@@ PHP_FUNCTION(socket_recvmsg
                        /* no need to destroy/free zres -- it's NULL in this circumstance */
                        assert(zres == NULL);
                }
+               RETVAL_LONG((zend_long)res);
        } else {
                SOCKETS_G(last_error) = errno;
 -              php_error_docref(NULL, E_WARNING, "error in recvmsg [%d]: %s",
 +              php_error_docref(NULL, E_WARNING, "Error in recvmsg [%d]: %s",
                                errno, sockets_strerror(errno));
-               RETURN_FALSE;
+               RETVAL_FALSE;
        }
  
-       RETURN_LONG((zend_long)res);
+       allocations_dispose(&allocations);
  }
  
  PHP_FUNCTION(socket_cmsg_space)
index 0000000000000000000000000000000000000000,8cd353c7694dcef8864f528b08e2f2c88bd0650e..8700b4184ce0f2e4c18e3847ec9179fd42a6d345
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,15 +1,15 @@@
 -Warning: socket_recvmsg(): error in recvmsg [%d]: %a in %s on line %d
+ --TEST--
+ Error during socket_sendmsg() or socket_recvmsg()
+ --FILE--
+ <?php
+ $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
+ socket_sendmsg($socket, [], -1);
+ $message = ['controllen' => 1];
+ socket_recvmsg($socket, $message, -1);
+ ?>
+ --EXPECTF--
+ Warning: socket_sendmsg(): error in sendmsg [%d]: %a in %s on line %d
++Warning: socket_recvmsg(): Error in recvmsg [%d]: %a in %s on line %d