summaryrefslogtreecommitdiff
path: root/user/php7/getsockopt.patch
diff options
context:
space:
mode:
authorMax Rees <maxcrees@me.com>2020-03-25 07:26:01 +0000
committerMax Rees <maxcrees@me.com>2020-04-05 12:22:26 +0000
commit1898956d4fb51404a527e909230781848a9d3118 (patch)
tree809d21e6b0aa650fd626123b63b43b5cf64bf133 /user/php7/getsockopt.patch
parent7f8d4d642ad643f553e0fe74c0d48d59c81d178c (diff)
downloadpackages-1898956d4fb51404a527e909230781848a9d3118.tar.gz
packages-1898956d4fb51404a527e909230781848a9d3118.tar.bz2
packages-1898956d4fb51404a527e909230781848a9d3118.tar.xz
packages-1898956d4fb51404a527e909230781848a9d3118.zip
user/php7: bump to 7.4.4
* Use system libgd * Use system oniguruma * Upstream has migrated from pcre to pcre2 * Drop comments about extensions that aren't being built (imap, recode, sodium, tidy) * Drop php7-wddx (has been removed from core upstream) * Drop php7-litespeed (I don't think anyone uses this) * Pin subpackage versions to main package * Fix _extensions_by_load_order so all extensions are tested * This increases the test suite size from ~ 9000 to ~ 15000 * Add additional API/ABI checks from Fedora
Diffstat (limited to 'user/php7/getsockopt.patch')
-rw-r--r--user/php7/getsockopt.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/user/php7/getsockopt.patch b/user/php7/getsockopt.patch
new file mode 100644
index 000000000..81f2bc232
--- /dev/null
+++ b/user/php7/getsockopt.patch
@@ -0,0 +1,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) {