Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 362e9c07 authored by Heiko Carstens's avatar Heiko Carstens
Browse files

[CVE-2009-0029] System call wrappers part 05

parent b290ebe2
Loading
Loading
Loading
Loading
+2 −3
Original line number Original line Diff line number Diff line
@@ -260,9 +260,8 @@ unsigned int alarm_setitimer(unsigned int seconds)
	return it_old.it_value.tv_sec;
	return it_old.it_value.tv_sec;
}
}


asmlinkage long sys_setitimer(int which,
SYSCALL_DEFINE3(setitimer, int, which, struct itimerval __user *, value,
			      struct itimerval __user *value,
		struct itimerval __user *, ovalue)
			      struct itimerval __user *ovalue)
{
{
	struct itimerval set_buffer, get_buffer;
	struct itimerval set_buffer, get_buffer;
	int error;
	int error;
+19 −24
Original line number Original line Diff line number Diff line
@@ -477,10 +477,9 @@ static void release_posix_timer(struct k_itimer *tmr, int it_id_set)


/* Create a POSIX.1b interval timer. */
/* Create a POSIX.1b interval timer. */


asmlinkage long
SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
sys_timer_create(const clockid_t which_clock,
		struct sigevent __user *, timer_event_spec,
		 struct sigevent __user *timer_event_spec,
		timer_t __user *, created_timer_id)
		 timer_t __user * created_timer_id)
{
{
	struct k_itimer *new_timer;
	struct k_itimer *new_timer;
	int error, new_timer_id;
	int error, new_timer_id;
@@ -661,8 +660,8 @@ common_timer_get(struct k_itimer *timr, struct itimerspec *cur_setting)
}
}


/* Get the time remaining on a POSIX.1b interval timer. */
/* Get the time remaining on a POSIX.1b interval timer. */
asmlinkage long
SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
sys_timer_gettime(timer_t timer_id, struct itimerspec __user *setting)
		struct itimerspec __user *, setting)
{
{
	struct k_itimer *timr;
	struct k_itimer *timr;
	struct itimerspec cur_setting;
	struct itimerspec cur_setting;
@@ -691,8 +690,7 @@ sys_timer_gettime(timer_t timer_id, struct itimerspec __user *setting)
 * the call back to do_schedule_next_timer().  So all we need to do is
 * the call back to do_schedule_next_timer().  So all we need to do is
 * to pick up the frozen overrun.
 * to pick up the frozen overrun.
 */
 */
asmlinkage long
SYSCALL_DEFINE1(timer_getoverrun, timer_t, timer_id)
sys_timer_getoverrun(timer_t timer_id)
{
{
	struct k_itimer *timr;
	struct k_itimer *timr;
	int overrun;
	int overrun;
@@ -760,10 +758,9 @@ common_timer_set(struct k_itimer *timr, int flags,
}
}


/* Set a POSIX.1b interval timer */
/* Set a POSIX.1b interval timer */
asmlinkage long
SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
sys_timer_settime(timer_t timer_id, int flags,
		const struct itimerspec __user *, new_setting,
		  const struct itimerspec __user *new_setting,
		struct itimerspec __user *, old_setting)
		  struct itimerspec __user *old_setting)
{
{
	struct k_itimer *timr;
	struct k_itimer *timr;
	struct itimerspec new_spec, old_spec;
	struct itimerspec new_spec, old_spec;
@@ -816,8 +813,7 @@ static inline int timer_delete_hook(struct k_itimer *timer)
}
}


/* Delete a POSIX.1b interval timer. */
/* Delete a POSIX.1b interval timer. */
asmlinkage long
SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
sys_timer_delete(timer_t timer_id)
{
{
	struct k_itimer *timer;
	struct k_itimer *timer;
	unsigned long flags;
	unsigned long flags;
@@ -903,8 +899,8 @@ int do_posix_clock_nonanosleep(const clockid_t clock, int flags,
}
}
EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);


asmlinkage long sys_clock_settime(const clockid_t which_clock,
SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
				  const struct timespec __user *tp)
		const struct timespec __user *, tp)
{
{
	struct timespec new_tp;
	struct timespec new_tp;


@@ -916,8 +912,8 @@ asmlinkage long sys_clock_settime(const clockid_t which_clock,
	return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
	return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
}
}


asmlinkage long
SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock,
sys_clock_gettime(const clockid_t which_clock, struct timespec __user *tp)
		struct timespec __user *,tp)
{
{
	struct timespec kernel_tp;
	struct timespec kernel_tp;
	int error;
	int error;
@@ -933,8 +929,8 @@ sys_clock_gettime(const clockid_t which_clock, struct timespec __user *tp)


}
}


asmlinkage long
SYSCALL_DEFINE2(clock_getres, const clockid_t, which_clock,
sys_clock_getres(const clockid_t which_clock, struct timespec __user *tp)
		struct timespec __user *, tp)
{
{
	struct timespec rtn_tp;
	struct timespec rtn_tp;
	int error;
	int error;
@@ -963,10 +959,9 @@ static int common_nsleep(const clockid_t which_clock, int flags,
				 which_clock);
				 which_clock);
}
}


asmlinkage long
SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, flags,
sys_clock_nanosleep(const clockid_t which_clock, int flags,
		const struct timespec __user *, rqtp,
		    const struct timespec __user *rqtp,
		struct timespec __user *, rmtp)
		    struct timespec __user *rmtp)
{
{
	struct timespec t;
	struct timespec t;