diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2019-10-12 14:44:35 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2019-10-12 14:44:55 +0200 |
commit | 7439d48bea8583c6986478f6e4de087c6585df0f (patch) | |
tree | 010c8e1b16354319c2beafe3b5abc1bf6ad5fe2e | |
parent | 74ac3dd6e260ea23aeb5c8b91953aff2be28f254 (diff) | |
parent | 900bdcbd0311b13eef5a1b9951ef0e7374fce6f7 (diff) | |
download | php-git-7439d48bea8583c6986478f6e4de087c6585df0f.tar.gz |
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
Fix #78665: Multicasting may leak memory
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | ext/sockets/multicast.c | 6 |
2 files changed, 9 insertions, 0 deletions
@@ -11,6 +11,9 @@ PHP NEWS . Fixed bug #78642 (Wrong libiconv version displayed). (gedas at martynas, cmb). +- Sockets: + . Fixed bug #78665 (Multicasting may leak memory). (cmb) + 24 Oct 2019, PHP 7.3.11 - Core: diff --git a/ext/sockets/multicast.c b/ext/sockets/multicast.c index 23e9d1b348..2df524f4e7 100644 --- a/ext/sockets/multicast.c +++ b/ext/sockets/multicast.c @@ -646,6 +646,7 @@ retry: goto retry; } if (retval != NO_ERROR) { + efree(addr_table); php_error_docref(NULL, E_WARNING, "GetIpAddrTable failed with error %lu", retval); return FAILURE; @@ -654,9 +655,11 @@ retry: MIB_IPADDRROW r = addr_table->table[i]; if (r.dwIndex == if_index) { out_addr->s_addr = r.dwAddr; + efree(addr_table); return SUCCESS; } } + efree(addr_table); php_error_docref(NULL, E_WARNING, "No interface with index %u was found", if_index); return FAILURE; @@ -686,6 +689,7 @@ retry: goto retry; } if (retval != NO_ERROR) { + efree(addr_table); php_error_docref(NULL, E_WARNING, "GetIpAddrTable failed with error %lu", retval); return FAILURE; @@ -694,9 +698,11 @@ retry: MIB_IPADDRROW r = addr_table->table[i]; if (r.dwAddr == addr->s_addr) { *if_index = r.dwIndex; + efree(addr_table); return SUCCESS; } } + efree(addr_table); { char addr_str[17] = {0}; |