]> granicus.if.org Git - strace/commitdiff
tests/uid*: use fchown* instead of chown*
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 16 Mar 2015 18:10:21 +0000 (18:10 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 16 Mar 2015 18:20:57 +0000 (18:20 +0000)
Newer architectures have no chown syscall, so use fchown* syscalls
for testing printuid.

* tests/uid.test: Use fchown instead of chown.
* tests/uid.c: Test __NR_fchown instead of __NR_chown.
(main): Use __NR_fchown instead of __NR_chown.
* tests/uid32.c: Test __NR_fchown32 instead of __NR_chown32.
(main): Use __NR_fchown32 instead of __NR_chown32.
* tests/uid16.c: Test __NR_fchown and __NR_fchown32 instead
of __NR_chown and __NR_chown32.
(main): Use __NR_fchown instead of __NR_chown.
* tests/uid.awk: Update regexp.

tests/uid.awk
tests/uid.c
tests/uid.test
tests/uid16.c
tests/uid32.c

index c6e891a3be31c67b0c4a2afd56621b8f17be3af3..6f07b44fd22ad96a5e56649feca7ec75e39e46ea 100644 (file)
@@ -26,9 +26,9 @@ regexp == "" {
       expected = "setresuid"
       regexp = "^setresuid" suffix "\\(" uid ", -1, -1\\)[[:space:]]+= 0$"
     } else if (expected == "setresuid") {
-      expected = "chown"
-      regexp = "^chown" suffix "\\(\".\", -1, -1\\)[[:space:]]+= 0$"
-    } else if (expected == "chown") {
+      expected = "fchown"
+      regexp = "^fchown" suffix "\\(1, -1, -1\\)[[:space:]]+= 0$"
+    } else if (expected == "fchown") {
       expected = "1st getgroups"
       regexp = "^getgroups" suffix "\\(0, NULL\\)[[:space:]]+= " r_uint "$"
     } else if (expected == "1st getgroups") {
index 1972044656055e016ed55118c2216a1eb3bbeaee..28f548bd0387a4a06c623b9e456277ca8874ff40 100644 (file)
@@ -14,7 +14,7 @@ main(void)
  && defined(__NR_getresuid) \
  && defined(__NR_setreuid) \
  && defined(__NR_setresuid) \
- && defined(__NR_chown) \
+ && defined(__NR_fchown) \
  && defined(__NR_getgroups)
        int uid;
        int size;
@@ -32,7 +32,7 @@ main(void)
        }
        assert(syscall(__NR_setreuid, -1, -1L) == 0);
        assert(syscall(__NR_setresuid, uid, -1, -1L) == 0);
-       assert(syscall(__NR_chown, ".", -1, -1L) == 0);
+       assert(syscall(__NR_fchown, 1, -1, -1L) == 0);
        assert((size = syscall(__NR_getgroups, 0, list)) >= 0);
        assert(list = calloc(size + 1, sizeof(*list)));
        assert(syscall(__NR_getgroups, size, list) == size);
index f4cb8e77abc1e4c14c37323598238f50e8956c5e..d8b026127dce663b5c9d8ee894c57ffcc7b6a31f 100755 (executable)
@@ -17,7 +17,7 @@ uid="uid$s$w"
        fi
 }
 
-syscalls="getuid$s,setuid$s,getresuid$s,setreuid$s,setresuid$s,chown$s,getgroups$s"
+syscalls="getuid$s,setuid$s,getresuid$s,setreuid$s,setresuid$s,fchown$s,getgroups$s"
 args="-e trace=$syscalls"
 $STRACE -o "$LOG" $args ./"$uid"|| {
        cat "$LOG"
index a2006d7ff7ec87698230577cc3bb797320995f1f..c0ef120af87dcae2ca0d1207e5d18019449818f8 100644 (file)
@@ -15,7 +15,7 @@ main(void)
  && defined(__NR_getresuid) \
  && defined(__NR_setreuid) \
  && defined(__NR_setresuid) \
- && defined(__NR_chown) \
+ && defined(__NR_fchown) \
  && defined(__NR_getgroups) \
  \
  && defined(__NR_getuid32) \
@@ -23,7 +23,7 @@ main(void)
  && defined(__NR_getresuid32) \
  && defined(__NR_setreuid32) \
  && defined(__NR_setresuid32) \
- && defined(__NR_chown32) \
+ && defined(__NR_fchown32) \
  && defined(__NR_getgroups32) \
  \
  && __NR_getuid != __NR_getuid32 \
@@ -31,7 +31,7 @@ main(void)
  && __NR_getresuid != __NR_getresuid32 \
  && __NR_setreuid != __NR_setreuid32 \
  && __NR_setresuid != __NR_setresuid32 \
- && __NR_chown != __NR_chown32 \
+ && __NR_fchown != __NR_fchown32 \
  && __NR_getgroups != __NR_getgroups32 \
  /**/
        int uid;
@@ -65,7 +65,7 @@ main(void)
        }
        assert(syscall(__NR_setreuid, -1, 0xffff) == 0);
        assert(syscall(__NR_setresuid, uid, -1, 0xffff) == 0);
-       assert(syscall(__NR_chown, ".", -1, 0xffff) == 0);
+       assert(syscall(__NR_fchown, 1, -1, 0xffff) == 0);
        assert((size = syscall(__NR_getgroups, 0, list)) >= 0);
        assert(list = calloc(size + 1, sizeof(*list)));
        assert(syscall(__NR_getgroups, size, list) == size);
index 15f120279b714570cb8c250c1edbd8b8585654b9..472461f1338d95def6c04c363715a2c19f728d38 100644 (file)
@@ -14,7 +14,7 @@ main(void)
  && defined(__NR_getresuid32) \
  && defined(__NR_setreuid32) \
  && defined(__NR_setresuid32) \
- && defined(__NR_chown32) \
+ && defined(__NR_fchown32) \
  && defined(__NR_getgroups32)
        int r, e, s;
        int size;
@@ -25,7 +25,7 @@ main(void)
        assert(syscall(__NR_getresuid32, &r, &e, &s) == 0);
        assert(syscall(__NR_setreuid32, -1, -1L) == 0);
        assert(syscall(__NR_setresuid32, r, -1, -1L) == 0);
-       assert(syscall(__NR_chown32, ".", -1, -1L) == 0);
+       assert(syscall(__NR_fchown32, 1, -1, -1L) == 0);
        assert((size = syscall(__NR_getgroups32, 0, list)) >= 0);
        assert(list = calloc(size + 1, sizeof(*list)));
        assert(syscall(__NR_getgroups32, size, list) == size);