readv.test is fail on Ubuntu 16.04 x86_64

JingPiao Chen chenjingpiao at foxmail.com
Sun Dec 4 11:59:48 UTC 2016


Environment: Ubuntu 16.04 x86_64
Version: dcc9b9cdb2cd6de7c5b300b8d1f5dfb3f0b31ab2


readv.test is fail on Ubuntu 16.04 x86_64


test-suite.log/readv.log:


251 FAIL: readv
252 ===========
253 
254 ../strace: invalid descriptor '65534'
255 readv.test: failed test: ../strace -a16 -eread=65534 -ewrite=65535 -e trace=readv,writev ./readv failed with code 1
256 FAIL readv.test (exit status: 1)


readv.test.tmp and readv.test.tmp.exp is empty.


In my computer fds[0] = 65534, fds[1] = 65534, biger then 0x7fff, so in function qual_desc will return -1.


/* syscall.c: 734 */
qual_desc(const char *s, const unsigned int bitflag, const int not)
{
	int desc = string_to_uint_upto(s, 0x7fff);
	if (desc < 0)
		return -1;
	qualify_one(desc, bitflag, not, -1, NULL);
	return 0;
}


My patch:


From c58e2972c732eb545c7c3bff76222f1806474a03 Mon Sep 17 00:00:00 2001
From: JingPiao Chen <chenjingpiao at foxmail.com>
Date: Sun, 4 Dec 2016 19:56:19 +0800
Subject: [PATCH] tests: fix maximum fd in pipe_maxfd


* tests/pipe_maxfd.c: Change INT_MAX to 0x7fff.
---
 tests/pipe_maxfd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


diff --git a/tests/pipe_maxfd.c b/tests/pipe_maxfd.c
index a1343f9..c7ba7d8 100644
--- a/tests/pipe_maxfd.c
+++ b/tests/pipe_maxfd.c
@@ -58,8 +58,8 @@ pipe_maxfd(int pipefd[2])
 	if (pipe(pipefd))
 		perror_msg_and_fail("pipe");
 
-	int max_fd = (rlim.rlim_cur > 0 && rlim.rlim_cur < INT_MAX)
-		     ? rlim.rlim_cur - 1 : INT_MAX;
+	int max_fd = (rlim.rlim_cur > 0 && rlim.rlim_cur < 0x7fff)
+		     ? rlim.rlim_cur - 1 : 0x7fff;
 
 	move_fd(&pipefd[1], &max_fd);
 	--max_fd;
-- 
2.7.4
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20161204/7a7e691a/attachment.html>


More information about the Strace-devel mailing list