@@ -646,6 +646,7 @@ int php_if_index_to_addr4(unsigned if_index, php_socket *php_sock, struct in_add
646646goto retry ;
647647}
648648if (retval != NO_ERROR ) {
649+ efree (addr_table );
649650php_error_docref (NULL , E_WARNING ,
650651"GetIpAddrTable failed with error %lu" , retval );
651652return FAILURE ;
@@ -654,9 +655,11 @@ int php_if_index_to_addr4(unsigned if_index, php_socket *php_sock, struct in_add
654655MIB_IPADDRROW r = addr_table -> table [i ];
655656if (r .dwIndex == if_index ) {
656657out_addr -> s_addr = r .dwAddr ;
658+ efree (addr_table );
657659return SUCCESS ;
658660}
659661}
662+ efree (addr_table );
660663php_error_docref (NULL , E_WARNING ,
661664"No interface with index %u was found" , if_index );
662665return FAILURE ;
@@ -686,6 +689,7 @@ int php_add4_to_if_index(struct in_addr *addr, php_socket *php_sock, unsigned *i
686689goto retry ;
687690}
688691if (retval != NO_ERROR ) {
692+ efree (addr_table );
689693php_error_docref (NULL , E_WARNING ,
690694"GetIpAddrTable failed with error %lu" , retval );
691695return FAILURE ;
@@ -694,9 +698,11 @@ int php_add4_to_if_index(struct in_addr *addr, php_socket *php_sock, unsigned *i
694698MIB_IPADDRROW r = addr_table -> table [i ];
695699if (r .dwAddr == addr -> s_addr ) {
696700* if_index = r .dwIndex ;
701+ efree (addr_table );
697702return SUCCESS ;
698703}
699704}
705+ efree (addr_table );
700706
701707{
702708char addr_str [17 ] = {0 };
0 commit comments