diff options
author | Bamvor Jian Zhang <bamvor.zhangjian@linaro.org> | 2015-11-12 22:17:51 -0500 |
---|---|---|
committer | Shuah Khan <shuahkh@osg.samsung.com> | 2015-11-18 18:56:53 -0500 |
commit | 2ce47b44b25d8fb0114ff117813742adbefec8ff (patch) | |
tree | 3d887ac8d930f10cd14524d736846222edcdc30b /tools | |
parent | 9e5b8a6e53c79e6ccdbe6e62142ed9f317cefd46 (diff) |
selftests/seccomp: Get page size from sysconf
The commit fd88d16c58c2 ("selftests/seccomp: Be more precise with
syscall arguments.") use PAGE_SIZE directly which lead to build
failure on arm64.
Replace it with generic interface(sysconf(_SC_PAGESIZE)) to fix this
failure.
Build and test successful on x86_64 and arm64.
Signed-off-by: Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
Acked-by: Kees Cook <keescook@chromium.org>
Tested-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/testing/selftests/seccomp/seccomp_bpf.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c index e38cc54942db..882fe83a3554 100644 --- a/tools/testing/selftests/seccomp/seccomp_bpf.c +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c | |||
@@ -492,6 +492,9 @@ TEST_SIGNAL(KILL_one_arg_six, SIGSYS) | |||
492 | pid_t parent = getppid(); | 492 | pid_t parent = getppid(); |
493 | int fd; | 493 | int fd; |
494 | void *map1, *map2; | 494 | void *map1, *map2; |
495 | int page_size = sysconf(_SC_PAGESIZE); | ||
496 | |||
497 | ASSERT_LT(0, page_size); | ||
495 | 498 | ||
496 | ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); | 499 | ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); |
497 | ASSERT_EQ(0, ret); | 500 | ASSERT_EQ(0, ret); |
@@ -504,16 +507,16 @@ TEST_SIGNAL(KILL_one_arg_six, SIGSYS) | |||
504 | 507 | ||
505 | EXPECT_EQ(parent, syscall(__NR_getppid)); | 508 | EXPECT_EQ(parent, syscall(__NR_getppid)); |
506 | map1 = (void *)syscall(sysno, | 509 | map1 = (void *)syscall(sysno, |
507 | NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE, fd, PAGE_SIZE); | 510 | NULL, page_size, PROT_READ, MAP_PRIVATE, fd, page_size); |
508 | EXPECT_NE(MAP_FAILED, map1); | 511 | EXPECT_NE(MAP_FAILED, map1); |
509 | /* mmap2() should never return. */ | 512 | /* mmap2() should never return. */ |
510 | map2 = (void *)syscall(sysno, | 513 | map2 = (void *)syscall(sysno, |
511 | NULL, PAGE_SIZE, PROT_READ, MAP_PRIVATE, fd, 0x0C0FFEE); | 514 | NULL, page_size, PROT_READ, MAP_PRIVATE, fd, 0x0C0FFEE); |
512 | EXPECT_EQ(MAP_FAILED, map2); | 515 | EXPECT_EQ(MAP_FAILED, map2); |
513 | 516 | ||
514 | /* The test failed, so clean up the resources. */ | 517 | /* The test failed, so clean up the resources. */ |
515 | munmap(map1, PAGE_SIZE); | 518 | munmap(map1, page_size); |
516 | munmap(map2, PAGE_SIZE); | 519 | munmap(map2, page_size); |
517 | close(fd); | 520 | close(fd); |
518 | } | 521 | } |
519 | 522 | ||