aboutsummaryrefslogtreecommitdiff
path: root/uid.c
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2015-07-16 00:01:25 +0000
committerDmitry V. Levin <ldv@altlinux.org>2015-07-16 01:36:55 +0000
commit14278620c9241e3dcd0f8f24ec704d6d12e7a85a (patch)
tree2f6497a8b41b225e539c88947beef3e77c778afc /uid.c
parent288a87049c335c16bab8a4fb25ed60f2d28fe530 (diff)
downloadstrace-14278620c9241e3dcd0f8f24ec704d6d12e7a85a.tar.gz
uid.c: make use of RVAL_DECODED
* uid.c (sys_setuid, sys_setreuid, sys_setresuid, sys_chown, sys_fchown, sys_setgroups): Update for RVAL_DECODED.
Diffstat (limited to 'uid.c')
-rw-r--r--uid.c136
1 files changed, 65 insertions, 71 deletions
diff --git a/uid.c b/uid.c
index 52f4f2e8e..30244abe9 100644
--- a/uid.c
+++ b/uid.c
@@ -55,10 +55,9 @@ SYS_FUNC(setfsuid)
SYS_FUNC(setuid)
{
- if (entering(tcp)) {
- tprintf("%u", (uid_t) tcp->u_arg[0]);
- }
- return 0;
+ printuid("", tcp->u_arg[0]);
+
+ return RVAL_DECODED;
}
static void
@@ -85,41 +84,37 @@ SYS_FUNC(getresuid)
SYS_FUNC(setreuid)
{
- if (entering(tcp)) {
- printuid("", tcp->u_arg[0]);
- printuid(", ", tcp->u_arg[1]);
- }
- return 0;
+ printuid("", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+
+ return RVAL_DECODED;
}
SYS_FUNC(setresuid)
{
- if (entering(tcp)) {
- printuid("", tcp->u_arg[0]);
- printuid(", ", tcp->u_arg[1]);
- printuid(", ", tcp->u_arg[2]);
- }
- return 0;
+ printuid("", tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+
+ return RVAL_DECODED;
}
SYS_FUNC(chown)
{
- if (entering(tcp)) {
- printpath(tcp, tcp->u_arg[0]);
- printuid(", ", tcp->u_arg[1]);
- printuid(", ", tcp->u_arg[2]);
- }
- return 0;
+ printpath(tcp, tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+
+ return RVAL_DECODED;
}
SYS_FUNC(fchown)
{
- if (entering(tcp)) {
- printfd(tcp, tcp->u_arg[0]);
- printuid(", ", tcp->u_arg[1]);
- printuid(", ", tcp->u_arg[2]);
- }
- return 0;
+ printfd(tcp, tcp->u_arg[0]);
+ printuid(", ", tcp->u_arg[1]);
+ printuid(", ", tcp->u_arg[2]);
+
+ return RVAL_DECODED;
}
void
@@ -133,54 +128,53 @@ printuid(const char *text, const unsigned int uid)
SYS_FUNC(setgroups)
{
- if (entering(tcp)) {
- unsigned long cur, abbrev_end;
- uid_t gid;
- int failed = 0;
- const unsigned long len = tcp->u_arg[0];
- const unsigned long start = tcp->u_arg[1];
- const unsigned long size = len * sizeof(gid);
- const unsigned long end = start + size;
-
- tprintf("%lu, ", len);
- if (len == 0) {
- tprints("[]");
- return 0;
- }
- if (!start || !verbose(tcp) ||
- size / sizeof(gid) != len || end < start) {
- printaddr(start);
- return 0;
- }
- if (abbrev(tcp)) {
- abbrev_end = start + max_strlen * sizeof(gid);
- if (abbrev_end < start)
- abbrev_end = end;
- } else {
+ unsigned long cur, abbrev_end;
+ uid_t gid;
+ int failed = 0;
+ const unsigned long len = tcp->u_arg[0];
+ const unsigned long start = tcp->u_arg[1];
+ const unsigned long size = len * sizeof(gid);
+ const unsigned long end = start + size;
+
+ tprintf("%lu, ", len);
+ if (len == 0) {
+ tprints("[]");
+ return RVAL_DECODED;
+ }
+ if (!start || !verbose(tcp) ||
+ size / sizeof(gid) != len || end < start) {
+ printaddr(start);
+ return RVAL_DECODED;
+ }
+ if (abbrev(tcp)) {
+ abbrev_end = start + max_strlen * sizeof(gid);
+ if (abbrev_end < start)
abbrev_end = end;
+ } else {
+ abbrev_end = end;
+ }
+ tprints("[");
+ for (cur = start; cur < end; cur += sizeof(gid)) {
+ if (cur > start)
+ tprints(", ");
+ if (cur >= abbrev_end) {
+ tprints("...");
+ break;
}
- tprints("[");
- for (cur = start; cur < end; cur += sizeof(gid)) {
- if (cur > start)
- tprints(", ");
- if (cur >= abbrev_end) {
- tprints("...");
- break;
- }
- if (umoven(tcp, cur, sizeof(gid), &gid) < 0) {
- tprints("?");
- failed = 1;
- break;
- }
- tprintf("%u", (unsigned int) gid);
- }
- tprints("]");
- if (failed) {
- tprints(" ");
- printaddr(start);
+ if (umoven(tcp, cur, sizeof(gid), &gid) < 0) {
+ tprints("?");
+ failed = 1;
+ break;
}
+ tprintf("%u", (unsigned int) gid);
}
- return 0;
+ tprints("]");
+ if (failed) {
+ tprints(" ");
+ printaddr(start);
+ }
+
+ return RVAL_DECODED;
}
SYS_FUNC(getgroups)