@@ -1696,7 +1696,7 @@ PHP_FUNCTION(socket_recvfrom)
1696
1696
int recv_flags = (int )arg4 ;
1697
1697
zval * addr = arg5 ;
1698
1698
zval * index = arg6 ;
1699
- if (recv_flags > 0 && ! (recv_flags & (MSG_PEEK |MSG_DONTWAIT |MSG_ERRQUEUE ))) {
1699
+ if (recv_flags > 0 && (recv_flags & ~ (MSG_PEEK |MSG_DONTWAIT |MSG_ERRQUEUE ))) {
1700
1700
zend_argument_value_error (4 , "must set one the flags MSG_PEEK, MSG_DONTWAIT, MSG_ERRQUEUE" );
1701
1701
zend_string_efree (recv_buf );
1702
1702
RETURN_THROWS ();
@@ -1760,7 +1760,7 @@ PHP_FUNCTION(socket_recvfrom)
1760
1760
1761
1761
switch (protocol ) {
1762
1762
case ETH_P_IP : {
1763
- if (php_socket_get_chunk (& ether_hdr_buf , & raw_buf , 0 , sizeof (struct iphdr )) == FAILURE ) {
1763
+ if (php_socket_get_chunk (& ether_hdr_buf , & raw_buf , ETH_HLEN , sizeof (struct iphdr )) == FAILURE ) {
1764
1764
zval_ptr_dtor (& obj );
1765
1765
zend_string_efree (recv_buf );
1766
1766
zend_value_error ("invalid ipv4 frame buffer length" );
@@ -1821,10 +1821,10 @@ PHP_FUNCTION(socket_recvfrom)
1821
1821
break ;
1822
1822
}
1823
1823
case ETH_P_IPV6 : {
1824
- if (php_socket_get_chunk (& ether_hdr_buf , & raw_buf , ETH_HLEN , sizeof (struct iphdr )) == FAILURE ) {
1824
+ if (php_socket_get_chunk (& ether_hdr_buf , & raw_buf , ETH_HLEN , sizeof (struct ipv6hdr )) == FAILURE ) {
1825
1825
zval_ptr_dtor (& obj );
1826
1826
zend_string_efree (recv_buf );
1827
- zend_value_error ("invalid ipv4 frame buffer length" );
1827
+ zend_value_error ("invalid ipv6 frame buffer length" );
1828
1828
RETURN_THROWS ();
1829
1829
}
1830
1830
struct ipv6hdr ip ;
0 commit comments