diff --git a/socket_wrapper-1.1.7-fix_open_prototype_for_ppc64le.patch b/socket_wrapper-1.1.7-fix_open_prototype_for_ppc64le.patch new file mode 100644 index 0000000..1a1698b --- /dev/null +++ b/socket_wrapper-1.1.7-fix_open_prototype_for_ppc64le.patch @@ -0,0 +1,29 @@ +From bbbea2289e11ba9f2381d90e761260fbdf651e1c Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Wed, 2 Aug 2017 13:21:59 +0200 +Subject: [PATCH] swrap: Fix prototype of open[64] to prevent segfault on + ppc64le + +The calling conventions for vaarg are different on ppc64le. The patch +fixes segfaults on that platform. + +Thanks to Florian Weimer who helped debugging it! + +Signed-off-by: Andreas Schneider +--- + src/socket_wrapper.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +Index: socket_wrapper-1.1.7/src/socket_wrapper.c +=================================================================== +--- socket_wrapper-1.1.7.orig/src/socket_wrapper.c ++++ socket_wrapper-1.1.7/src/socket_wrapper.c +@@ -372,7 +372,7 @@ struct swrap_libc_fns { + socklen_t *optlen); + int (*libc_ioctl)(int d, unsigned long int request, ...); + int (*libc_listen)(int sockfd, int backlog); +- int (*libc_open)(const char *pathname, int flags, mode_t mode); ++ int (*libc_open)(const char *pathname, int flags, ...); + int (*libc_pipe)(int pipefd[2]); + int (*libc_read)(int fd, void *buf, size_t count); + ssize_t (*libc_readv)(int fd, const struct iovec *iov, int iovcnt); diff --git a/socket_wrapper.spec b/socket_wrapper.spec index 68fee3e..c47f052 100644 --- a/socket_wrapper.spec +++ b/socket_wrapper.spec @@ -1,6 +1,6 @@ Name: socket_wrapper Version: 1.1.7 -Release: 3%{?dist} +Release: 4%{?dist} License: BSD Summary: A library passing all socket communications through Unix sockets @@ -8,6 +8,8 @@ Url: http://cwrap.org/ Source0: https://ftp.samba.org/pub/cwrap/%{name}-%{version}.tar.gz +Patch0: socket_wrapper-1.1.7-fix_open_prototype_for_ppc64le.patch + BuildRequires: cmake BuildRequires: libcmocka-devel >= 0.4.1 @@ -29,7 +31,7 @@ This package doesn't have a devel package because this project is for development/testing. %prep -%setup -q +%autosetup -p1 %build if test ! -e "obj"; then @@ -55,6 +57,9 @@ popd %check pushd obj ctest -V + +LD_PRELOAD=src/libsocket_wrapper.so bash -c '>/dev/null' + popd %files @@ -68,6 +73,9 @@ popd %{_mandir}/man1/socket_wrapper.1* %changelog +* Wed Aug 02 2017 Andreas Schneider - 1.1.7-4 +- resolves: #1465147 - Fix socket_wrapper on ppc64le + * Thu Jul 27 2017 Fedora Release Engineering - 1.1.7-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild