diff options
Diffstat (limited to 'lib/syscall.c')
| -rw-r--r-- | lib/syscall.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/lib/syscall.c b/lib/syscall.c index 8533d2fea2d7..ba13e924c430 100644 --- a/lib/syscall.c +++ b/lib/syscall.c @@ -7,6 +7,7 @@  static int collect_syscall(struct task_struct *target, struct syscall_info *info)  { +	unsigned long args[6] = { };  	struct pt_regs *regs;  	if (!try_get_task_stack(target)) { @@ -27,8 +28,14 @@ static int collect_syscall(struct task_struct *target, struct syscall_info *info  	info->data.nr = syscall_get_nr(target, regs);  	if (info->data.nr != -1L) -		syscall_get_arguments(target, regs, -				      (unsigned long *)&info->data.args[0]); +		syscall_get_arguments(target, regs, args); + +	info->data.args[0] = args[0]; +	info->data.args[1] = args[1]; +	info->data.args[2] = args[2]; +	info->data.args[3] = args[3]; +	info->data.args[4] = args[4]; +	info->data.args[5] = args[5];  	put_task_stack(target);  	return 0; |