From cf273016fe7905925212f0f459f431dc7d45a2c3 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Mon, 18 Apr 2016 13:45:36 +0000 Subject: [PATCH] tests: extend test coverage of setgid syscall * tests/setgid.c: New file. * tests/setgid.test: New test. * tests/.gitignore: Add setgid. * tests/Makefile.am (check_PROGRAMS): Likewise. (DECODER_TESTS): Add setgid.test. --- tests/.gitignore | 1 + tests/Makefile.am | 2 ++ tests/setgid.c | 25 +++++++++++++++++++++++++ tests/setgid.test | 6 ++++++ 4 files changed, 34 insertions(+) create mode 100644 tests/setgid.c create mode 100755 tests/setgid.test diff --git a/tests/.gitignore b/tests/.gitignore index 3c37023d..b7b9df74 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -142,6 +142,7 @@ semop sendfile sendfile64 set_ptracer_any +setgid sethostname setuid setuid32 diff --git a/tests/Makefile.am b/tests/Makefile.am index 592c2b76..4c51f575 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -192,6 +192,7 @@ check_PROGRAMS = \ sendfile \ sendfile64 \ set_ptracer_any \ + setgid \ sethostname \ setuid \ setuid32 \ @@ -401,6 +402,7 @@ DECODER_TESTS = \ semop.test \ sendfile.test \ sendfile64.test \ + setgid.test \ sethostname.test \ setuid.test \ setuid32.test \ diff --git a/tests/setgid.c b/tests/setgid.c new file mode 100644 index 00000000..aa3f8987 --- /dev/null +++ b/tests/setgid.c @@ -0,0 +1,25 @@ +#include "tests.h" +#include + +#ifdef __NR_setgid + +# define SYSCALL_NR __NR_setgid +# define SYSCALL_NAME "setgid" + +# if defined __NR_setgid32 && __NR_setgid != __NR_setgid32 +# define UGID_TYPE short +# define GETUGID syscall(__NR_getegid) +# define CHECK_OVERFLOWUGID(arg) check_overflowgid(arg) +# else +# define UGID_TYPE int +# define GETUGID getegid() +# define CHECK_OVERFLOWUGID(arg) +# endif + +# include "setugid.c" + +#else + +SKIP_MAIN_UNDEFINED("__NR_setgid") + +#endif diff --git a/tests/setgid.test b/tests/setgid.test new file mode 100755 index 00000000..a3a90041 --- /dev/null +++ b/tests/setgid.test @@ -0,0 +1,6 @@ +#!/bin/sh + +# Check setgid syscall decoding. + +. "${srcdir=.}/init.sh" +run_strace_match_diff -a10 -- 2.40.0