blob: 81f2bc2320fa4612a9e243acc7e3a47d79bfe7f0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
Socket options with level IPPROTO_IP and IPPROTO_IPV6 cannot be handled
in the same switch statement as options with level SOL_SOCKET since
there may be collisions in their numerical values.
For example, on ppc64:
* IPV6_MULTICAST_HOPS and SO_RCVTIMEO are both 18
* IPV6_MULTICAST_LOOP and SO_SNDTIMEO are both 19
etc.
--- php-7.4.4/ext/sockets/sockets.c 2020-03-17 06:40:21.000000000 -0400
+++ php-7.4.4/ext/sockets/sockets.c 2020-03-29 22:39:57.506751737 -0400
@@ -2008,6 +2008,7 @@ PHP_FUNCTION(socket_get_option)
}
}
}
+ goto handle_default;
}
#if HAVE_IPV6
else if (level == IPPROTO_IPV6) {
@@ -2017,6 +2018,7 @@ PHP_FUNCTION(socket_get_option)
} else if (ret == FAILURE) {
RETURN_FALSE;
} /* else continue */
+ goto handle_default;
}
#endif
@@ -2063,6 +2065,7 @@ PHP_FUNCTION(socket_get_option)
break;
default:
+ handle_default:
optlen = sizeof(other_val);
if (getsockopt(php_sock->bsd_socket, level, optname, (char*)&other_val, &optlen) != 0) {
|