aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch')
-rw-r--r--meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch198
1 files changed, 0 insertions, 198 deletions
diff --git a/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch b/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch
deleted file mode 100644
index c4e645b81f..0000000000
--- a/meta/recipes-devtools/strace/strace/0001-scm_rights-fd.test-rewrite-without-fork.patch
+++ /dev/null
@@ -1,198 +0,0 @@
-From 3fdcdd47c6a67585123a0a0c8fffabcc9f79a3a2 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Tue, 12 Jan 2016 14:47:12 +0000
-Subject: [PATCH] scm_rights-fd.test: rewrite without fork
-
-* tests/scm_rights.c (main): Rewrite without fork.
-Place all objects passed to sendmsg and recvmsg at the end
-of memory pages followed by inaccessible pages.
-* tests/scm_rights-fd.test: Update.
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport
-
- tests/scm_rights-fd.test | 12 ++---
- tests/scm_rights.c | 122 ++++++++++++++++++++++-------------------------
- 2 files changed, 63 insertions(+), 71 deletions(-)
-
-diff --git a/tests/scm_rights-fd.test b/tests/scm_rights-fd.test
-index a32ef36..48c5028 100755
---- a/tests/scm_rights-fd.test
-+++ b/tests/scm_rights-fd.test
-@@ -49,18 +49,18 @@ touch -- "$file" ||
- framework_skip_ 'failed to create a file'
-
- run_prog ./scm_rights /dev/zero
--run_strace_merge -y -x -enetwork $args "$file"
-+run_strace -y -x -enetwork $args "$file"
-
-+sample='\\xf1\\xf2\\xf3\\xf4\\xf5\\xf6\\xf7\\xf8\\xf9\\xfa\\xfb\\xfc\\xfd\\xfe\\xff'
- n='[1-9][0-9]*'
--msg='\{msg_name\(0\)=NULL, msg_iov\(1\)=\[\{"\\x00\\x00\\x00\\x00[^"]*", '"$n"'\}\], msg_controllen='"$n"
--rights='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, \[3</dev/null>, 4</dev/zero>, 5</[^}>]*/(A\\n){127}Z>\]\}'
-+msg='\{msg_name\(0\)=NULL, msg_iov\(1\)=\[\{"'"$sample"'", 15\}\], msg_controllen='"$n"
-+rights='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, \[4</dev/null>, 5</dev/zero>, 6</[^}>]*/(A\\n){127}Z>\]\}'
- creds='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, \{pid='"$n"', uid=[0-9]+, gid=[0-9]+\}\}'
--prefix='[1-9][0-9]* +[0-9]+:[0-9]+:[0-9]+\.[0-9]+ +'
- EXPECTED="$LOG.expected"
-
- cat > "$EXPECTED" << __EOF__
--${prefix}sendmsg\\(1<socket:\\[[0-9]+\\]>, $msg, \\[$rights\\], msg_flags=0\\}, 0\\) += $n
--${prefix}recvmsg\\(0<socket:\\[[0-9]+\\]>, $msg, \\[$creds, $rights\\], msg_flags=0\\}, 0\\) += $n
-+sendmsg\\(3<socket:\\[[0-9]+\\]>, $msg, \\[$rights\\], msg_flags=0\\}, 0\\) = 15
-+recvmsg\\(0<socket:\\[[0-9]+\\]>, $msg, \\[$creds, $rights\\], msg_flags=0\\}, 0\\) = 15
- __EOF__
-
- match_grep "$LOG" "$EXPECTED"
-diff --git a/tests/scm_rights.c b/tests/scm_rights.c
-index 1e5e850..00af4d5 100644
---- a/tests/scm_rights.c
-+++ b/tests/scm_rights.c
-@@ -27,26 +27,39 @@
-
- #include "tests.h"
- #include <assert.h>
--#include <string.h>
--#include <stdlib.h>
--#include <unistd.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <unistd.h>
- #include <sys/socket.h>
--#include <sys/wait.h>
-
- int main(int ac, const char **av)
- {
-- int i;
-- int data = 0;
-- struct iovec iov = {
-- .iov_base = &data,
-- .iov_len = sizeof(iov)
-- };
-+ assert(ac > 0);
-+ int fds[ac];
-+
-+ static const char sample[] =
-+ "\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
-+ const unsigned int data_size = sizeof(sample) - 1;
-+ void *data = tail_alloc(data_size);
-+ memcpy(data, sample, data_size);
-+
-+ struct iovec *iov = tail_alloc(sizeof(struct iovec));
-+ iov->iov_base = data;
-+ iov->iov_len = data_size;
-
-- while ((i = open("/dev/null", O_RDWR)) < 3)
-+ struct msghdr *mh = tail_alloc(sizeof(struct msghdr));
-+ memset(mh, 0, sizeof(*mh));
-+ mh->msg_iov = iov;
-+ mh->msg_iovlen = 1;
-+
-+ int i;
-+ while ((i = open("/dev/null", O_RDWR)) <= ac + 2)
- assert(i >= 0);
-- (void) close(3);
-+ while (i > 2)
-+ assert(close(i--) == 0);
-+ assert(close(0) == 0);
-
- int sv[2];
- if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
-@@ -55,60 +68,39 @@ int main(int ac, const char **av)
- if (setsockopt(sv[0], SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)))
- perror_msg_and_skip("setsockopt");
-
-- pid_t pid = fork();
-- if (pid < 0)
-- perror_msg_and_fail("fork");
--
-- if (pid) {
-- assert(close(sv[0]) == 0);
-- assert(dup2(sv[1], 1) == 1);
-- assert(close(sv[1]) == 0);
--
-- int fds[ac];
-- assert((fds[0] = open("/dev/null", O_RDWR)) == 3);
-- for (i = 1; i < ac; ++i)
-- assert((fds[i] = open(av[i], O_RDONLY)) == i + 3);
--
-- union {
-- struct cmsghdr cmsg;
-- char buf[CMSG_LEN(sizeof(fds))];
-- } control;
--
-- control.cmsg.cmsg_level = SOL_SOCKET;
-- control.cmsg.cmsg_type = SCM_RIGHTS;
-- control.cmsg.cmsg_len = CMSG_LEN(sizeof(fds));
-- memcpy(CMSG_DATA(&control.cmsg), fds, sizeof(fds));
--
-- struct msghdr mh = {
-- .msg_iov = &iov,
-- .msg_iovlen = 1,
-- .msg_control = &control,
-- .msg_controllen = sizeof(control)
-- };
--
-- assert(sendmsg(1, &mh, 0) == sizeof(iov));
-- assert(close(1) == 0);
--
-- int status;
-- assert(waitpid(pid, &status, 0) == pid);
-- assert(status == 0);
-- } else {
-- assert(close(sv[1]) == 0);
-- assert(dup2(sv[0], 0) == 0);
-- assert(close(sv[0]) == 0);
--
-- struct cmsghdr control[4 + ac * sizeof(int) / sizeof(struct cmsghdr)];
--
-- struct msghdr mh = {
-- .msg_iov = &iov,
-- .msg_iovlen = 1,
-- .msg_control = control,
-- .msg_controllen = sizeof(control)
-- };
--
-- assert(recvmsg(0, &mh, 0) == sizeof(iov));
-- assert(close(0) == 0);
-+ assert((fds[0] = open("/dev/null", O_RDWR)) == 4);
-+ for (i = 1; i < ac; ++i)
-+ assert((fds[i] = open(av[i], O_RDONLY)) == i + 4);
-+
-+ unsigned int cmsg_size = CMSG_SPACE(sizeof(fds));
-+ struct cmsghdr *cmsg = tail_alloc(cmsg_size);
-+ memset(cmsg, 0, cmsg_size);
-+ cmsg->cmsg_level = SOL_SOCKET;
-+ cmsg->cmsg_type = SCM_RIGHTS;
-+ cmsg->cmsg_len = CMSG_LEN(sizeof(fds));
-+ memcpy(CMSG_DATA(cmsg), fds, sizeof(fds));
-+
-+ mh->msg_control = cmsg;
-+ mh->msg_controllen = cmsg_size;
-+
-+ assert(sendmsg(sv[1], mh, 0) == (int) data_size);
-+
-+ assert(close(sv[1]) == 0);
-+ assert(open("/dev/null", O_RDWR) == sv[1]);
-+
-+ for (i = 0; i < ac; ++i) {
-+ assert(close(fds[i]) == 0);
-+ fds[i] = 0;
- }
-
-+ cmsg_size += CMSG_SPACE(sizeof(struct ucred));
-+ cmsg = tail_alloc(cmsg_size);
-+ memset(cmsg, 0, cmsg_size);
-+ mh->msg_control = cmsg;
-+ mh->msg_controllen = cmsg_size;
-+
-+ assert(recvmsg(0, mh, 0) == (int) data_size);
-+ assert(close(0) == 0);
-+
- return 0;
- }
---
-1.9.1
-