Skip to content

Commit d6ac80e

Browse files
committed
fix leaks and test
1 parent 4e36ea8 commit d6ac80e

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

ext/sockets/sockets.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1685,9 +1685,9 @@ PHP_FUNCTION(socket_recvfrom)
16851685
break;
16861686
}
16871687
default:
1688-
zend_string_efree(recv_buf);
1689-
zval_ptr_dtor(&zpayload);
1690-
zval_ptr_dtor(&obj);
1688+
zend_string_efree(recv_buf);
1689+
zval_ptr_dtor(&zpayload);
1690+
zval_ptr_dtor(&obj);
16911691
zend_value_error("unsupported ip header protocol");
16921692
RETURN_THROWS();
16931693
}
@@ -1718,12 +1718,12 @@ PHP_FUNCTION(socket_recvfrom)
17181718
}
17191719

17201720
Z_DELREF(zpayload);
1721+
zend_string_efree(recv_buf);
17211722
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("socket"), arg1);
17221723
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("macsrc"), ether_ntoa((struct ether_addr *)e->h_source));
17231724
zend_update_property_string(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("macdst"), ether_ntoa((struct ether_addr *)e->h_dest));
17241725
zend_update_property_long(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("ethprotocol"), protocol);
17251726
zend_update_property(Z_OBJCE(obj), Z_OBJ(obj), ZEND_STRL("payload"), &zpayload);
1726-
// TODO fix leaks
17271727

17281728
ZEND_TRY_ASSIGN_REF_VALUE(arg2, &obj);
17291729
ZEND_TRY_ASSIGN_REF_STRING(arg5, ifrname);

ext/sockets/tests/socket_afpacket.phpt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Warning: socket_getpeername(): unable to retrieve peer name [95]: %sot supported
5151
int(60)
5252
int(60)
5353
string(2) "lo"
54-
object(SocketEthernetInfo)#3 (4) {
54+
object(SocketEthernetInfo)#3 (%d) {
5555
["socket"]=>
5656
object(Socket)#1 (0) {
5757
}
@@ -62,10 +62,7 @@ object(SocketEthernetInfo)#3 (4) {
6262
["macdst"]=>
6363
string(%d) "%s:%s:%s:%s:%s:%s"
6464
["payload"]=>
65-
array(2) {
66-
["ipsrc"]=>
67-
string(%d) "%d.%d.%d.%d"
68-
["ipdst"]=>
69-
string(%d) "%d.%d.%d.%d"
65+
array(%d) {
66+
%a
7067
}
7168
}

0 commit comments

Comments
 (0)