@@ -1456,7 +1456,7 @@ static zend_result php_socket_get_chunk(zend_string *dst, const zend_string *src
1456
1456
return FAILURE ;
1457
1457
}
1458
1458
1459
- memcpy (ZSTR_VAL (dst ), ZSTR_VAL (src ) + offset , len );
1459
+ memcpy (ZSTR_VAL (dst ), ZSTR_VAL (src ) + offset , len + 1 );
1460
1460
ZSTR_LEN (dst ) = len ;
1461
1461
return SUCCESS ;
1462
1462
}
@@ -1465,8 +1465,8 @@ static zend_result php_socket_afpacket_add_tcp(unsigned char *ipdata, struct soc
1465
1465
size_t slen , zval * szpayload , zval * zpayload , zval * obj , zval * arg2 , zval * arg5 , zval * arg6 ) {
1466
1466
struct tcphdr a ;
1467
1467
ETH_SUB_CHECKLENGTH (a , "TCP" );
1468
- memcpy (& a , ipdata , sizeof (a ));
1469
1468
struct tcphdr * tcp = & a ;
1469
+ memcpy (tcp , ipdata , sizeof (* tcp ));
1470
1470
object_init_ex (szpayload , tcppacket_ce );
1471
1471
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("srcPort" ), ntohs (tcp -> th_sport ));
1472
1472
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("dstPort" ), ntohs (tcp -> th_dport ));
@@ -1481,8 +1481,8 @@ static zend_result php_socket_afpacket_add_udp(unsigned char *ipdata, struct soc
1481
1481
size_t slen , zval * szpayload , zval * zpayload , zval * obj , zval * arg2 , zval * arg5 , zval * arg6 ) {
1482
1482
struct udphdr a ;
1483
1483
ETH_SUB_CHECKLENGTH (a , "UDP" );
1484
- memcpy (& a , ipdata , sizeof (a ));
1485
1484
struct udphdr * udp = & a ;
1485
+ memcpy (udp , ipdata , sizeof (* udp ));
1486
1486
size_t headersize = sizeof (* udp );
1487
1487
object_init_ex (szpayload , udppacket_ce );
1488
1488
zend_update_property_long (Z_OBJCE_P (szpayload ), Z_OBJ_P (szpayload ), ZEND_STRL ("srcPort" ), ntohs (udp -> uh_sport ));
@@ -1748,8 +1748,8 @@ PHP_FUNCTION(socket_recvfrom)
1748
1748
}
1749
1749
1750
1750
struct ethhdr a ;
1751
- memcpy (& a , ZSTR_VAL (dst_buf ), ETH_HLEN );
1752
1751
struct ethhdr * e = & a ;
1752
+ memcpy (e , ZSTR_VAL (dst_buf ), ETH_HLEN );
1753
1753
unsigned short protocol = ntohs (e -> h_proto );
1754
1754
unsigned char * payload ;
1755
1755
@@ -1770,8 +1770,8 @@ PHP_FUNCTION(socket_recvfrom)
1770
1770
}
1771
1771
payload = ((unsigned char * )ZSTR_VAL (dst_buf ));
1772
1772
struct iphdr a ;
1773
- memcpy (& a , payload , sizeof (a ));
1774
1773
struct iphdr * ip = & a ;
1774
+ memcpy (ip , payload , sizeof (* ip ));
1775
1775
size_t tlayer = ip -> ihl * 4 ;
1776
1776
size_t totalip = ntohs (ip -> tot_len );
1777
1777
@@ -1798,7 +1798,7 @@ PHP_FUNCTION(socket_recvfrom)
1798
1798
zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("srcAddr" ), inet_ntoa (s ));
1799
1799
zend_update_property_string (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("dstAddr" ), inet_ntoa (d ));
1800
1800
zend_update_property_long (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("headerSize" ), totalip );
1801
- zend_update_property_stringl (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("rawPacket" ), (char * )payload , totalip );
1801
+ zend_update_property_stringl (Z_OBJCE (zpayload ), Z_OBJ (zpayload ), ZEND_STRL ("rawPacket" ), (char * )payload , ZSTR_LEN ( dst_buf ) );
1802
1802
1803
1803
switch (ip -> protocol ) {
1804
1804
case IPPROTO_TCP : {
@@ -1956,8 +1956,8 @@ PHP_FUNCTION(socket_recvfrom)
1956
1956
zend_value_error ("invalid LOOP header" );
1957
1957
RETURN_THROWS ();
1958
1958
}
1959
- memcpy (& a , payload , sizeof (a ));
1960
1959
struct ethhdr * innere = & a ;
1960
+ memcpy (innere , payload , sizeof (a ));
1961
1961
zval innerp ;
1962
1962
ZVAL_NULL (& innerp );
1963
1963
object_init_ex (& zpayload , ethpacket_ce );
0 commit comments