@@ -1460,7 +1460,7 @@ static zend_result php_socket_afpacket_add_tcp(unsigned char *ipdata, struct soc
1460
1460
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("srcPort" ), ntohs (tcp -> th_sport ));
1461
1461
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("dstPort" ), ntohs (tcp -> th_dport ));
1462
1462
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("headerSize" ), sizeof (* tcp ));
1463
- zend_update_property_string (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("rawPacket" ), (char * )ipdata );
1463
+ zend_update_property_stringl (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("rawPacket" ), (char * )ipdata , sizeof ( * tcp ) );
1464
1464
zend_update_property (Z_OBJCE_P (zpayload ), Z_OBJ_P (zpayload ), ZEND_STRL ("payload" ), szpayload );
1465
1465
Z_DELREF_P (szpayload );
1466
1466
return SUCCESS ;
@@ -1472,11 +1472,12 @@ static zend_result php_socket_afpacket_add_udp(unsigned char *ipdata, struct soc
1472
1472
ETH_SUB_CHECKLENGTH (a , "UDP" );
1473
1473
memcpy (& a , ipdata , sizeof (a ));
1474
1474
struct udphdr * udp = & a ;
1475
+ size_t headersize = sizeof (* udp );
1475
1476
object_init_ex (szpayload , udppacket_ce );
1476
1477
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("srcPort" ), ntohs (udp -> uh_sport ));
1477
1478
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("dstPort" ), ntohs (udp -> uh_dport ));
1478
- zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("headerSize" ), sizeof ( * udp ) );
1479
- zend_update_property_string (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("rawPacket" ), (char * )ipdata );
1479
+ zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("headerSize" ), headersize );
1480
+ zend_update_property_stringl (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("rawPacket" ), (char * )ipdata , headersize );
1480
1481
zend_update_property (Z_OBJCE_P (zpayload ), Z_OBJ_P (zpayload ), ZEND_STRL ("payload" ), szpayload );
1481
1482
Z_DELREF_P (szpayload );
1482
1483
return SUCCESS ;
@@ -1768,7 +1769,7 @@ PHP_FUNCTION(socket_recvfrom)
1768
1769
zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("srcAddr" ), inet_ntoa (s ));
1769
1770
zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("dstAddr" ), inet_ntoa (d ));
1770
1771
zend_update_property_long (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("headerSize" ), totalip );
1771
- zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("rawPacket" ), (char * )payload );
1772
+ zend_update_property_stringl (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("rawPacket" ), (char * )payload , totalip );
1772
1773
1773
1774
switch (ip -> protocol ) {
1774
1775
case IPPROTO_TCP : {
@@ -1827,7 +1828,7 @@ PHP_FUNCTION(socket_recvfrom)
1827
1828
zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("srcAddr" ), s );
1828
1829
zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("dstAddr" ), d );
1829
1830
zend_update_property_long (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("headerSize" ), totalip );
1830
- zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("rawPacket" ), (char * )payload );
1831
+ zend_update_property_stringl (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("rawPacket" ), (char * )payload , totalip );
1831
1832
unsigned char ipprotocol = ip -> nexthdr ;
1832
1833
unsigned char * ipdata = payload + sizeof (* ip );
1833
1834
0 commit comments