Skip to content

Commit 83453b9

Browse files
committed
address most of the remarks
1 parent cdb5126 commit 83453b9

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

ext/sockets/sockets.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1456,7 +1456,7 @@ static zend_result php_socket_get_chunk(zend_string *dst, const zend_string *src
14561456
return FAILURE;
14571457
}
14581458

1459-
memcpy(ZSTR_VAL(dst), ZSTR_VAL(src) + offset, len);
1459+
memcpy(ZSTR_VAL(dst), ZSTR_VAL(src) + offset, len + 1);
14601460
ZSTR_LEN(dst) = len;
14611461
return SUCCESS;
14621462
}
@@ -1465,8 +1465,8 @@ static zend_result php_socket_afpacket_add_tcp(unsigned char *ipdata, struct soc
14651465
size_t slen, zval *szpayload, zval *zpayload, zval *obj, zval *arg2, zval *arg5, zval *arg6) {
14661466
struct tcphdr a;
14671467
ETH_SUB_CHECKLENGTH(a, "TCP");
1468-
memcpy(&a, ipdata, sizeof(a));
14691468
struct tcphdr *tcp = &a;
1469+
memcpy(tcp, ipdata, sizeof(*tcp));
14701470
object_init_ex(szpayload, tcppacket_ce);
14711471
zend_update_property_long(Z_OBJCE_P(szpayload), Z_OBJ_P(szpayload), ZEND_STRL("srcPort"), ntohs(tcp->th_sport));
14721472
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
14811481
size_t slen, zval *szpayload, zval *zpayload, zval *obj, zval *arg2, zval *arg5, zval *arg6) {
14821482
struct udphdr a;
14831483
ETH_SUB_CHECKLENGTH(a, "UDP");
1484-
memcpy(&a, ipdata, sizeof(a));
14851484
struct udphdr *udp = &a;
1485+
memcpy(udp, ipdata, sizeof(*udp));
14861486
size_t headersize = sizeof(*udp);
14871487
object_init_ex(szpayload, udppacket_ce);
14881488
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)
17481748
}
17491749

17501750
struct ethhdr a;
1751-
memcpy(&a, ZSTR_VAL(dst_buf), ETH_HLEN);
17521751
struct ethhdr *e = &a;
1752+
memcpy(e, ZSTR_VAL(dst_buf), ETH_HLEN);
17531753
unsigned short protocol = ntohs(e->h_proto);
17541754
unsigned char *payload;
17551755

@@ -1770,8 +1770,8 @@ PHP_FUNCTION(socket_recvfrom)
17701770
}
17711771
payload = ((unsigned char *)ZSTR_VAL(dst_buf));
17721772
struct iphdr a;
1773-
memcpy(&a, payload, sizeof(a));
17741773
struct iphdr *ip = &a;
1774+
memcpy(ip, payload, sizeof(*ip));
17751775
size_t tlayer = ip->ihl * 4;
17761776
size_t totalip = ntohs(ip->tot_len);
17771777

@@ -1798,7 +1798,7 @@ PHP_FUNCTION(socket_recvfrom)
17981798
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("srcAddr"), inet_ntoa(s));
17991799
zend_update_property_string(Z_OBJCE(zpayload), Z_OBJ(zpayload), ZEND_STRL("dstAddr"), inet_ntoa(d));
18001800
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));
18021802

18031803
switch (ip->protocol) {
18041804
case IPPROTO_TCP: {
@@ -1956,8 +1956,8 @@ PHP_FUNCTION(socket_recvfrom)
19561956
zend_value_error("invalid LOOP header");
19571957
RETURN_THROWS();
19581958
}
1959-
memcpy(&a, payload, sizeof(a));
19601959
struct ethhdr *innere = &a;
1960+
memcpy(innere, payload, sizeof(a));
19611961
zval innerp;
19621962
ZVAL_NULL(&innerp);
19631963
object_init_ex(&zpayload, ethpacket_ce);

0 commit comments

Comments
 (0)