2004-06-25 00:21:08

by Wichert Akkerman

[permalink] [raw]
Subject: sys_gettimeofday racy or not?

This just happened to catch my eye and it's probably perfectly
valid, but if so please educate me on why it is. In kernel/time.c
sys_gettimeofday() there is this code:

if (unlikely(tz != NULL)) {
if (copy_to_user(tz, &sys_tz, sizeof(sys_tz)))
return -EFAULT;
}

what prevents sys_tz from being changed while this code runs?

Wichert.

--
Wichert Akkerman <[email protected]> It is simple to make things.
http://www.wiggy.net/ It is hard to make things simple.


2004-06-25 04:53:37

by Chris Friesen

[permalink] [raw]
Subject: Re: sys_gettimeofday racy or not?

Wichert Akkerman wrote:
> This just happened to catch my eye and it's probably perfectly
> valid, but if so please educate me on why it is. In kernel/time.c
> sys_gettimeofday() there is this code:
>
> if (unlikely(tz != NULL)) {
> if (copy_to_user(tz, &sys_tz, sizeof(sys_tz)))
> return -EFAULT;
> }
>
> what prevents sys_tz from being changed while this code runs?

Nothing at all.

I suspect most people don't worry about it, since its use is deprecated. The
man page for gettimeofday() says "The use of the timezone struct is obsolete".

Chris