Do not truncate return value of get{,e}[ug]id and setfs[ug]id syscalls

This should not be a user visible change unless the kernel does
something completely unexpected.  In the latter case, let user see
what is going on.

* uid.c (SYS_FUNC(getuid), SYS_FUNC(setfsuid)): Do not truncate
tcp->u_rval to uid_t on exiting syscall, return RVAL_DECODED.
This commit is contained in:
Дмитрий Левин 2015-12-27 00:18:03 +00:00
parent 727508b077
commit abfa939f57

9
uid.c
View File

@ -70,18 +70,15 @@
SYS_FUNC(getuid)
{
if (exiting(tcp))
tcp->u_rval = (uid_t) tcp->u_rval;
return RVAL_UDECIMAL;
return RVAL_UDECIMAL | RVAL_DECODED;
}
SYS_FUNC(setfsuid)
{
if (entering(tcp))
tprintf("%u", (uid_t) tcp->u_arg[0]);
else
tcp->u_rval = (uid_t) tcp->u_rval;
return RVAL_UDECIMAL;
return RVAL_UDECIMAL | RVAL_DECODED;
}
SYS_FUNC(setuid)