diff --git a/glibc-rh1310168.patch b/glibc-rh1310168.patch new file mode 100644 index 0000000..4070df9 --- /dev/null +++ b/glibc-rh1310168.patch @@ -0,0 +1,46 @@ +Backport part of this upstream commit: + +commit 016495b818cb61df7d0d10e6db54074271b3e3a5 +Author: Stefan Liebler +Date: Mon Nov 9 16:14:49 2015 +0100 + + S390: Call direct system calls for socket operations. + + this patch calls direct system calls for socket operations in the same way as power does. The system calls were introduced in kernel commit https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=977108f89c989b1eeb5c8d938e1e71913391eb5f. + There are no direct recv, send, accept syscalls available on s390. Thus + recvfrom, sendto, accept4 are called instead of the socketcall by defining __ASSUME_*_FOR_*_SYSCALL macros. See recv.c, send.c, accept.c in sysdeps/unix/sysv/linux/ folder. + + The socketcalls in syscalls.list for s390-64 are removed. They were never used on s390x. + + +The removal is required due to the kernel change because otherwise, +these system calls will be used unconditionally with new kernel +headers. + +diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list +index 5b8c102..9f03d26 100644 +--- a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list ++++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list +@@ -12,22 +12,3 @@ shmget - shmget i:iii __shmget shmget + semop - semop i:ipi __semop semop + semget - semget i:iii __semget semget + semctl - semctl i:iiii __semctl semctl +- +-# proper socket implementations: +-accept - accept Ci:iBN __libc_accept __accept accept +-bind - bind i:ipi __bind bind +-connect - connect Ci:ipi __libc_connect __connect connect +-getpeername - getpeername i:ipp __getpeername getpeername +-getsockname - getsockname i:ipp __getsockname getsockname +-getsockopt - getsockopt i:iiiBN __getsockopt getsockopt +-listen - listen i:ii __listen listen +-recv - recv Ci:ibni __libc_recv __recv recv +-recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom +-recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg +-send - send Ci:ibni __libc_send __send send +-sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg +-sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto +-setsockopt - setsockopt i:iiibn __setsockopt setsockopt +-shutdown - shutdown i:ii __shutdown shutdown +-socket - socket i:iii __socket socket +-socketpair - socketpair i:iiif __socketpair socketpair diff --git a/glibc.spec b/glibc.spec index 8585e33..0e5dfb1 100644 --- a/glibc.spec +++ b/glibc.spec @@ -1,6 +1,6 @@ %define glibcsrcdir glibc-2.21 %define glibcversion 2.21 -%define glibcrelease 11%{?dist} +%define glibcrelease 12%{?dist} # Pre-release tarballs are pulled in from git using a command that is # effectively: # @@ -270,6 +270,9 @@ Patch2035: %{name}-rh1276112.patch # Upsteam BZ 18665 Patch2107: glibc-CVE-2015-7547.patch +# Upstream BZ 19682 +Patch2108: glibc-rh1310168.patch + ############################################################################## # End of glibc patches. ############################################################################## @@ -601,6 +604,7 @@ package or when debugging this package. %patch2034 -p1 %patch2035 -p1 %patch2107 -p1 +%patch2108 -p1 %patch0050 -p1 %patch0052 -p1 %patch0053 -p1 @@ -1786,6 +1790,9 @@ rm -f *.filelist* %endif %changelog +* Fri Feb 19 2016 Florian Weimer - 2.21-12 +- Fix socket system call selection on s390x (#1310168). + * Tue Feb 16 2016 Florian Weimer - 2.21-11 - CVE-2015-7547: Stack-based buffer overflow in getaddrinfo (#1308943).