diff options
Diffstat (limited to 'kernel/posix-timers.c')
| -rw-r--r-- | kernel/posix-timers.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index ad723420acc..9ca4973f736 100644 --- a/kernel/posix-timers.c +++ b/kernel/posix-timers.c @@ -560,11 +560,6 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,  	new_timer->it_clock = which_clock;  	new_timer->it_overrun = -1; -	if (copy_to_user(created_timer_id, -			 &new_timer_id, sizeof (new_timer_id))) { -		error = -EFAULT; -		goto out; -	}  	if (timer_event_spec) {  		if (copy_from_user(&event, timer_event_spec, sizeof (event))) {  			error = -EFAULT; @@ -590,6 +585,12 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,  	new_timer->sigq->info.si_tid   = new_timer->it_id;  	new_timer->sigq->info.si_code  = SI_TIMER; +	if (copy_to_user(created_timer_id, +			 &new_timer_id, sizeof (new_timer_id))) { +		error = -EFAULT; +		goto out; +	} +  	error = CLOCK_DISPATCH(which_clock, timer_create, (new_timer));  	if (error)  		goto out;  |