Fix old_value argument retrieval in timerfd_settime parser

This is done similar to timer_settime syscall parser.

* time.c (SYS_FUNC(timerfd_settime)): Retrieve old_value argument
on exiting and not on entering.  Return 0 instead of RVAL_DECODED
since the call hasn't been decoded in full on entering.
This commit is contained in:
Eugene Syromyatnikov 2016-08-22 11:51:16 +03:00 committed by Dmitry V. Levin
parent d8f673568b
commit b53f546d3e

20
time.c
View File

@ -314,15 +314,17 @@ SYS_FUNC(timerfd_create)
SYS_FUNC(timerfd_settime)
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printflags(timerfdflags, tcp->u_arg[1], "TFD_???");
tprints(", ");
print_itimerspec(tcp, tcp->u_arg[2]);
tprints(", ");
print_itimerspec(tcp, tcp->u_arg[3]);
return RVAL_DECODED;
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
printflags(timerfdflags, tcp->u_arg[1], "TFD_???");
tprints(", ");
print_itimerspec(tcp, tcp->u_arg[2]);
tprints(", ");
} else {
print_itimerspec(tcp, tcp->u_arg[3]);
}
return 0;
}
SYS_FUNC(timerfd_gettime)