X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=kernel%2Ftime.c;h=87d441cdd494420142823472b30cb985604220c5;hb=9e1bf581d67d87a1d7fc0ea500729e3a03643a26;hp=b6d01cf709c49bf70a23ed91b046c268ca0bcaee;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/kernel/time.c b/kernel/time.c index b6d01cf70..87d441cdd 100644 --- a/kernel/time.c +++ b/kernel/time.c @@ -31,9 +31,6 @@ #include #include #include -#include -#include - #include #include @@ -80,17 +77,13 @@ asmlinkage long sys_time(int __user * tloc) asmlinkage long sys_stime(time_t __user *tptr) { struct timespec tv; - int err; + if (!capable(CAP_SYS_TIME)) + return -EPERM; if (get_user(tv.tv_sec, tptr)) return -EFAULT; tv.tv_nsec = 0; - - err = security_settime(&tv, NULL); - if (err) - return err; - do_settimeofday(&tv); return 0; } @@ -152,12 +145,10 @@ inline static void warp_clock(void) int do_sys_settimeofday(struct timespec *tv, struct timezone *tz) { static int firsttime = 1; - int error = 0; - - error = security_settime(tv, tz); - if (error) - return error; + if (!capable(CAP_SYS_TIME)) + return -EPERM; + if (tz) { /* SMP safe, global irq locking makes it work. */ sys_tz = *tz; @@ -487,6 +478,8 @@ int do_settimeofday (struct timespec *tv) return 0; } +EXPORT_SYMBOL(do_settimeofday); + void do_gettimeofday (struct timeval *tv) { unsigned long seq, nsec, usec, sec, offset;