* [LTP] [PATCH] syscalls/fstat05.c: fix test logic error
@ 2019-02-21 14:02 Wei Li
2019-03-13 14:36 ` Cyril Hrubis
0 siblings, 1 reply; 3+ messages in thread
From: Wei Li @ 2019-02-21 14:02 UTC (permalink / raw)
To: ltp
On my machine running linux-4.19.23, the fstat05 test case went failed:
[root@localhost ltp_20180926_src]# ./testcases/kernel/syscalls/fstat/fstat05
fstat05 1 TFAIL : fstat05.c:168: fstat() returned 0 but we wanted -1
Finally i found that, the end of head was expanded after invoking setup(), more
than 4 * getpagesize(), then ptr_str is not a point outside user's accessible
address space any more.
Before invoking setup():
[root@localhost home]# cat /proc/10299/maps
00400000-00417000 r-xp 00000000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
0042f000-00430000 r--p 0001f000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00430000-00431000 rw-p 00020000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00431000-00434000 rw-p 00000000 00:00 0
132dc000-132fd000 rw-p 00000000 00:00 0 [heap]
ffff92737000-ffff92747000 rw-p 00000000 00:00 0
ffff92747000-ffff928bd000 r-xp 00000000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928bd000-ffff928d3000 ---p 00176000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d3000-ffff928d7000 r--p 0017c000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d7000-ffff928d9000 rw-p 00180000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d9000-ffff928dd000 rw-p 00000000 00:00 0
ffff928dd000-ffff928fd000 r-xp 00000000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff92905000-ffff92908000 rw-p 00000000 00:00 0
ffff92909000-ffff9291a000 rw-p 00000000 00:00 0
ffff9291a000-ffff9291b000 r--p 00000000 00:00 0 [vvar]
ffff9291b000-ffff9291c000 r-xp 00000000 00:00 0 [vdso]
ffff9291c000-ffff9291d000 r--p 0002f000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291d000-ffff9291e000 rw-p 00030000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291e000-ffff9291f000 rw-p 00000000 00:00 0
fffff5998000-fffff59b9000 rw-p 00000000 00:00 0 [stack]
After invoking setup():
[root@localhost home]# cat /proc/10299/maps
00400000-00417000 r-xp 00000000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
0042f000-00430000 r--p 0001f000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00430000-00431000 rw-p 00020000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00431000-00434000 rw-p 00000000 00:00 0
132dc000-1350d000 rw-p 00000000 00:00 0 [heap]
ffff92705000-ffff92712000 r-xp 00000000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92712000-ffff92724000 ---p 0000d000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92724000-ffff92725000 r--p 0000f000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92725000-ffff92726000 rw-p 00010000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92737000-ffff92747000 rw-p 00000000 00:00 0
ffff92747000-ffff928bd000 r-xp 00000000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928bd000-ffff928d3000 ---p 00176000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d3000-ffff928d7000 r--p 0017c000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d7000-ffff928d9000 rw-p 00180000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d9000-ffff928dd000 rw-p 00000000 00:00 0
ffff928dd000-ffff928fd000 r-xp 00000000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff92905000-ffff92908000 rw-p 00000000 00:00 0
ffff92909000-ffff9291a000 rw-p 00000000 00:00 0
ffff9291a000-ffff9291b000 r--p 00000000 00:00 0 [vvar]
ffff9291b000-ffff9291c000 r-xp 00000000 00:00 0 [vdso]
ffff9291c000-ffff9291d000 r--p 0002f000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291d000-ffff9291e000 rw-p 00030000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291e000-ffff9291f000 rw-p 00000000 00:00 0
fffff5998000-fffff59b9000 rw-p 00000000 00:00 0 [stack]
[root@localhost home]#
Signed-off-by: Wei Li <liwei391@huawei.com>
---
testcases/kernel/syscalls/fstat/fstat05.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/testcases/kernel/syscalls/fstat/fstat05.c b/testcases/kernel/syscalls/fstat/fstat05.c
index 8de5d070a..b10285cbe 100644
--- a/testcases/kernel/syscalls/fstat/fstat05.c
+++ b/testcases/kernel/syscalls/fstat/fstat05.c
@@ -135,15 +135,15 @@ int main(int ac, char **av)
tst_parse_opts(ac, av, NULL, NULL);
- /* Buffer points outside user's accessible address space. */
- ptr_str = &stat_buf; /* if it was for conformance testing */
- ptr_str = (void *)sbrk(0) + (4 * getpagesize());
-
/*
* Invoke setup function
*/
setup();
+ /* Buffer points outside user's accessible address space. */
+ ptr_str = &stat_buf; /* if it was for conformance testing */
+ ptr_str = (void *)sbrk(0) + (4 * getpagesize());
+
for (lc = 0; TEST_LOOPING(lc); lc++) {
tst_count = 0;
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [LTP] [PATCH] syscalls/fstat05.c: fix test logic error
@ 2019-02-23 2:59 Wei Li
0 siblings, 0 replies; 3+ messages in thread
From: Wei Li @ 2019-02-23 2:59 UTC (permalink / raw)
To: ltp
On my machine running linux-4.19.23, the fstat05 test case went failed:
[root@localhost ltp_20180926_src]# ./testcases/kernel/syscalls/fstat/fstat05
fstat05 1 TFAIL : fstat05.c:168: fstat() returned 0 but we wanted -1
Finally i found that, the end of head was expanded after invoking setup(), more
than 4 * getpagesize(), then ptr_str is not a point outside user's accessible
address space any more.
Before invoking setup():
[root@localhost home]# cat /proc/10299/maps
00400000-00417000 r-xp 00000000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
0042f000-00430000 r--p 0001f000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00430000-00431000 rw-p 00020000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00431000-00434000 rw-p 00000000 00:00 0
132dc000-132fd000 rw-p 00000000 00:00 0 [heap]
ffff92737000-ffff92747000 rw-p 00000000 00:00 0
ffff92747000-ffff928bd000 r-xp 00000000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928bd000-ffff928d3000 ---p 00176000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d3000-ffff928d7000 r--p 0017c000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d7000-ffff928d9000 rw-p 00180000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d9000-ffff928dd000 rw-p 00000000 00:00 0
ffff928dd000-ffff928fd000 r-xp 00000000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff92905000-ffff92908000 rw-p 00000000 00:00 0
ffff92909000-ffff9291a000 rw-p 00000000 00:00 0
ffff9291a000-ffff9291b000 r--p 00000000 00:00 0 [vvar]
ffff9291b000-ffff9291c000 r-xp 00000000 00:00 0 [vdso]
ffff9291c000-ffff9291d000 r--p 0002f000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291d000-ffff9291e000 rw-p 00030000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291e000-ffff9291f000 rw-p 00000000 00:00 0
fffff5998000-fffff59b9000 rw-p 00000000 00:00 0 [stack]
After invoking setup():
[root@localhost home]# cat /proc/10299/maps
00400000-00417000 r-xp 00000000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
0042f000-00430000 r--p 0001f000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00430000-00431000 rw-p 00020000 fc:01 63312180 /home/CI_DATA/20190213141353/testcase/kernel_test/ltp_20180926/ltp_20180926_src/testcases/kernel/syscalls/fstat/fstat05
00431000-00434000 rw-p 00000000 00:00 0
132dc000-1350d000 rw-p 00000000 00:00 0 [heap]
ffff92705000-ffff92712000 r-xp 00000000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92712000-ffff92724000 ---p 0000d000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92724000-ffff92725000 r--p 0000f000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92725000-ffff92726000 rw-p 00010000 fc:02 266064 /usr/lib64/libnss_files-2.20-2014.11.so
ffff92737000-ffff92747000 rw-p 00000000 00:00 0
ffff92747000-ffff928bd000 r-xp 00000000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928bd000-ffff928d3000 ---p 00176000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d3000-ffff928d7000 r--p 0017c000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d7000-ffff928d9000 rw-p 00180000 fc:02 266045 /usr/lib64/libc-2.20-2014.11.so
ffff928d9000-ffff928dd000 rw-p 00000000 00:00 0
ffff928dd000-ffff928fd000 r-xp 00000000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff92905000-ffff92908000 rw-p 00000000 00:00 0
ffff92909000-ffff9291a000 rw-p 00000000 00:00 0
ffff9291a000-ffff9291b000 r--p 00000000 00:00 0 [vvar]
ffff9291b000-ffff9291c000 r-xp 00000000 00:00 0 [vdso]
ffff9291c000-ffff9291d000 r--p 0002f000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291d000-ffff9291e000 rw-p 00030000 fc:02 266038 /usr/lib64/ld-2.20-2014.11.so
ffff9291e000-ffff9291f000 rw-p 00000000 00:00 0
fffff5998000-fffff59b9000 rw-p 00000000 00:00 0 [stack]
[root@localhost home]#
Signed-off-by: Wei Li <liwei391@huawei.com>
---
testcases/kernel/syscalls/fstat/fstat05.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/testcases/kernel/syscalls/fstat/fstat05.c b/testcases/kernel/syscalls/fstat/fstat05.c
index 8de5d070a..b10285cbe 100644
--- a/testcases/kernel/syscalls/fstat/fstat05.c
+++ b/testcases/kernel/syscalls/fstat/fstat05.c
@@ -135,15 +135,15 @@ int main(int ac, char **av)
tst_parse_opts(ac, av, NULL, NULL);
- /* Buffer points outside user's accessible address space. */
- ptr_str = &stat_buf; /* if it was for conformance testing */
- ptr_str = (void *)sbrk(0) + (4 * getpagesize());
-
/*
* Invoke setup function
*/
setup();
+ /* Buffer points outside user's accessible address space. */
+ ptr_str = &stat_buf; /* if it was for conformance testing */
+ ptr_str = (void *)sbrk(0) + (4 * getpagesize());
+
for (lc = 0; TEST_LOOPING(lc); lc++) {
tst_count = 0;
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [LTP] [PATCH] syscalls/fstat05.c: fix test logic error
2019-02-21 14:02 [LTP] [PATCH] syscalls/fstat05.c: fix test logic error Wei Li
@ 2019-03-13 14:36 ` Cyril Hrubis
0 siblings, 0 replies; 3+ messages in thread
From: Cyril Hrubis @ 2019-03-13 14:36 UTC (permalink / raw)
To: ltp
Hi!
It would be better to pass the result from tst_get_bad_addr() to the
fstat function rather than trying to guess unused address space based on
the end of the program data segment. Can you send updated patch?
Also sorry for the long delay.
--
Cyril Hrubis
chrubis@suse.cz
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-03-13 14:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-21 14:02 [LTP] [PATCH] syscalls/fstat05.c: fix test logic error Wei Li
2019-03-13 14:36 ` Cyril Hrubis
-- strict thread matches above, loose matches on Subject: below --
2019-02-23 2:59 Wei Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox