diff options
author | Eugene Syromyatnikov <evgsyr@gmail.com> | 2016-11-28 02:50:03 +0300 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2016-12-04 17:42:38 +0000 |
commit | 3304d82108ba863d51e71af3b86c9aa0247f04f1 (patch) | |
tree | 0620449f9e59fa73fe2c0bbc683ec88b4dd682bd /tests/setugid.c | |
parent | dcc9b9cdb2cd6de7c5b300b8d1f5dfb3f0b31ab2 (diff) | |
download | strace-3304d82108ba863d51e71af3b86c9aa0247f04f1.tar.gz |
uid: use printuid for printing UID/GID value
* uid.c (setfsuid, get_print_uid, print_gid): Use printuid.
* tests/setfsugid.c (printuid): New function.
(main): Use it to print UID/GID values.
* tests/setgroups.c: Likewise.
* tests/setugid.c (ugid2int): Remove.
(printuid): New function.
(main): Use it to print UID/GID values.
Co-authored-by: Elvira Khabirova <lineprinter0@gmail.com>
Diffstat (limited to 'tests/setugid.c')
-rw-r--r-- | tests/setugid.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/tests/setugid.c b/tests/setugid.c index dd6b921a5..aba277c59 100644 --- a/tests/setugid.c +++ b/tests/setugid.c @@ -31,13 +31,13 @@ #include <stdio.h> #include <unistd.h> -static int -ugid2int(const unsigned UGID_TYPE ugid) +void +printuid(unsigned UGID_TYPE id) { - if ((unsigned UGID_TYPE) -1U == ugid) - return -1; + if (id == (unsigned UGID_TYPE) -1U) + printf("-1"); else - return ugid; + printf("%u", id); } int @@ -58,22 +58,23 @@ main(void) unsigned int i; for (i = 0; i < ARRAY_SIZE(tests); ++i) { - const unsigned int num = ugid2int(tests[i]); + const unsigned int num = (unsigned UGID_TYPE) tests[i]; long expected; if (num == ugid) expected = 0; - else if (num == -1U) + else if ((UGID_TYPE) num == (UGID_TYPE) -1U) expected = -1; else continue; const long rc = syscall(SYSCALL_NR, tests[i]); - int saved_errno = errno; + const char *errstr = sprintrc(rc); + if (rc != expected) { if (!i && ENOSYS == errno) { - printf("%s(%u) = -1 ENOSYS (%m)\n", - SYSCALL_NAME, ugid); + printf("%s(%u) = %s\n", + SYSCALL_NAME, ugid, errstr); break; } perror_msg_and_fail("%s(%#lx) != %ld", @@ -81,15 +82,8 @@ main(void) } printf("%s(", SYSCALL_NAME); - if (num == -1U) - printf("-1"); - else - printf("%u", num); - errno = saved_errno; - if (expected) - printf(") = -1 %s (%m)\n", errno2name()); - else - printf(") = 0\n"); + printuid(num); + printf(") = %s\n", errstr); } puts("+++ exited with 0 +++"); |