pathtrace: fix fanotify_mark path tracing on 32-bit architectures
The fanotify_mark syscall takes a 64-bit mask, and on 32-bit architectures it is split up into two syscall arguments. * pathtrace.c (pathtrace_match_set): Use getllval to properly decode arguments after mask.
This commit is contained in:
parent
725e0fdd1d
commit
f996207331
11
pathtrace.c
11
pathtrace.c
@ -241,10 +241,13 @@ pathtrace_match_set(struct tcb *tcp, struct path_set *set)
|
||||
|
||||
|
||||
case SEN_fanotify_mark:
|
||||
/* x, x, x, fd, path */
|
||||
return fdmatch(tcp, tcp->u_arg[3], set) ||
|
||||
upathmatch(tcp, tcp->u_arg[4], set);
|
||||
|
||||
{
|
||||
/* x, x, mask (64 bit), fd, path */
|
||||
unsigned long long mask = 0;
|
||||
int argn = getllval(tcp, &mask, 2);
|
||||
return fdmatch(tcp, tcp->u_arg[argn], set) ||
|
||||
upathmatch(tcp, tcp->u_arg[argn + 1], set);
|
||||
}
|
||||
case SEN_oldselect:
|
||||
case SEN_pselect6:
|
||||
case SEN_select:
|
||||
|
Loading…
x
Reference in New Issue
Block a user