* RE: [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
@ 2003-04-11 13:07 Aniruddha M Marathe
2003-04-11 21:36 ` george anzinger
0 siblings, 1 reply; 7+ messages in thread
From: Aniruddha M Marathe @ 2003-04-11 13:07 UTC (permalink / raw)
To: george anzinger; +Cc: linux-kernel, Chandrashekhar RS
Even then, I think, we can modify the settimeofday code to check -1 and USEC_PER_SEC
Conditions, can't we?
|-----Original Message-----
|From: george anzinger [mailto:george@mvista.com]
|Sent: Friday, April 11, 2003 11:56 AM
|To: Aniruddha M Marathe
|Cc: linux-kernel@vger.kernel.org; Chandrashekhar RS
|Subject: Re: [BUG] settimeofday(2) succeeds for microsecond
|value more than USEC_PER_SEC and for negative value
|
|
|Aniruddha M Marathe wrote:
|> Settimeofday(2) should return EINVAL in case where
|tv.tv_usec parameter is more than
|> USEC_PER_SEC (more than 10^6 ) or for negative values of tv.tv_usec.
|> It returns 0 (success) instead.
|>
|> Clock_settimeofday(2) (kernel/posix-timers.c) also uses
|do_sys_settimeofday() and faces the
|> Same problem.
|>
|> I think this is a bug. If you confirm, I will send a patch.
|
|Yes, it is a known problem, turned up by some the posix timers tests.
| I suppose it is too much to ask, but it would be nice if
|do_sys_settimeofday() took a timespec instead of a timeval. Of course
|this changes the interface for all the archs, but it would allow the
|clock_settimeofday to send in the nsec value.
|
|-g
|
|>
|> Regards,
|> Aniruddha Marathe
|> WIPRO Technologies, India
|> -
|> To unsubscribe from this list: send the line "unsubscribe
|linux-kernel" in
|> the body of a message to majordomo@vger.kernel.org
|> More majordomo info at http://vger.kernel.org/majordomo-info.html
|> Please read the FAQ at http://www.tux.org/lkml/
|>
|
|--
|George Anzinger george@mvista.com
|High-res-timers: http://sourceforge.net/projects/high-res-timers/
|Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
|
|
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
2003-04-11 13:07 [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value Aniruddha M Marathe
@ 2003-04-11 21:36 ` george anzinger
2003-05-02 18:06 ` Urs Thuermann
0 siblings, 1 reply; 7+ messages in thread
From: george anzinger @ 2003-04-11 21:36 UTC (permalink / raw)
To: Aniruddha M Marathe; +Cc: linux-kernel, Chandrashekhar RS
Aniruddha M Marathe wrote:
> Even then, I think, we can modify the settimeofday code to check -1 and USEC_PER_SEC
> Conditions, can't we?
>
Uh, sure. This is the test I prefer:
if( (unsigned long)tv->usec > USEC_PER_SEC)
return EINVAL;
Note that the unsigned picks up the negative value as well as the >
(and it does it in only one machine code test/jmp :)
This change should go in do_sys_settimeofday() in kernel/time.c. It
will fix both settimeofday and clock_settime(CLOCK_REALTIME,... And
also fixes it in all archs.
-g
>
> |-----Original Message-----
> |From: george anzinger [mailto:george@mvista.com]
> |Sent: Friday, April 11, 2003 11:56 AM
> |To: Aniruddha M Marathe
> |Cc: linux-kernel@vger.kernel.org; Chandrashekhar RS
> |Subject: Re: [BUG] settimeofday(2) succeeds for microsecond
> |value more than USEC_PER_SEC and for negative value
> |
> |
> |Aniruddha M Marathe wrote:
> |> Settimeofday(2) should return EINVAL in case where
> |tv.tv_usec parameter is more than
> |> USEC_PER_SEC (more than 10^6 ) or for negative values of tv.tv_usec.
> |> It returns 0 (success) instead.
> |>
> |> Clock_settimeofday(2) (kernel/posix-timers.c) also uses
> |do_sys_settimeofday() and faces the
> |> Same problem.
> |>
> |> I think this is a bug. If you confirm, I will send a patch.
> |
> |Yes, it is a known problem, turned up by some the posix timers tests.
> | I suppose it is too much to ask, but it would be nice if
> |do_sys_settimeofday() took a timespec instead of a timeval. Of course
> |this changes the interface for all the archs, but it would allow the
> |clock_settimeofday to send in the nsec value.
> |
> |-g
> |
> |>
> |> Regards,
> |> Aniruddha Marathe
> |> WIPRO Technologies, India
> |> -
> |> To unsubscribe from this list: send the line "unsubscribe
> |linux-kernel" in
> |> the body of a message to majordomo@vger.kernel.org
> |> More majordomo info at http://vger.kernel.org/majordomo-info.html
> |> Please read the FAQ at http://www.tux.org/lkml/
> |>
> |
> |--
> |George Anzinger george@mvista.com
> |High-res-timers: http://sourceforge.net/projects/high-res-timers/
> |Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
> |
> |
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
2003-04-11 21:36 ` george anzinger
@ 2003-05-02 18:06 ` Urs Thuermann
0 siblings, 0 replies; 7+ messages in thread
From: Urs Thuermann @ 2003-05-02 18:06 UTC (permalink / raw)
To: linux-kernel
george anzinger <george@mvista.com> writes:
> Uh, sure. This is the test I prefer:
>
> if( (unsigned long)tv->usec > USEC_PER_SEC)
> return EINVAL;
>
> Note that the unsigned picks up the negative value as well as the >
> (and it does it in only one machine code test/jmp :)
No, don't do the compilers job. Just write
if (tv->usec < 0 || tv->usec >= USEC_PER_SEC) { ... }
This is easier to read, portable, and generates the same machine code
as your C code, at least in all gcc versions since gcc-2.7.2.3 (I
don't have older gcc versions here on my machine to test).
urs
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
2003-04-12 10:43 Aniruddha M Marathe
@ 2003-04-12 19:25 ` george anzinger
0 siblings, 0 replies; 7+ messages in thread
From: george anzinger @ 2003-04-12 19:25 UTC (permalink / raw)
To: Aniruddha M Marathe; +Cc: linux-kernel
Aniruddha M Marathe wrote:
> |Aniruddha M Marathe wrote:
> |> Even then, I think, we can modify the settimeofday code to
> |check -1 and USEC_PER_SEC
> |> Conditions, can't we?
> |>
>
> George wrote:
>
> |Uh, sure. This is the test I prefer:
> |
> | if( (unsigned long)tv->usec > USEC_PER_SEC)
> | return EINVAL;
> |
> |
> |This change should go in do_sys_settimeofday() in kernel/time.c. It
> |will fix both settimeofday and clock_settime(CLOCK_REALTIME,... And
> |also fixes it in all archs.
> |
> |-g
>
> How about
> If( (unsigned long)tv->usec >= USEC_PER_SEC)
> return EINVAL;
Right, my mistake ;)
-g
>
> Even if tv_usec value is 10^6, it should give EINVAL.
> Man page must also be updated
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
@ 2003-04-12 10:43 Aniruddha M Marathe
2003-04-12 19:25 ` george anzinger
0 siblings, 1 reply; 7+ messages in thread
From: Aniruddha M Marathe @ 2003-04-12 10:43 UTC (permalink / raw)
To: george anzinger; +Cc: linux-kernel
|Aniruddha M Marathe wrote:
|> Even then, I think, we can modify the settimeofday code to
|check -1 and USEC_PER_SEC
|> Conditions, can't we?
|>
George wrote:
|Uh, sure. This is the test I prefer:
|
| if( (unsigned long)tv->usec > USEC_PER_SEC)
| return EINVAL;
|
|
|This change should go in do_sys_settimeofday() in kernel/time.c. It
|will fix both settimeofday and clock_settime(CLOCK_REALTIME,... And
|also fixes it in all archs.
|
|-g
How about
If( (unsigned long)tv->usec >= USEC_PER_SEC)
return EINVAL;
Even if tv_usec value is 10^6, it should give EINVAL.
Man page must also be updated
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
2003-04-11 5:12 Aniruddha M Marathe
@ 2003-04-11 6:26 ` george anzinger
0 siblings, 0 replies; 7+ messages in thread
From: george anzinger @ 2003-04-11 6:26 UTC (permalink / raw)
To: Aniruddha M Marathe; +Cc: linux-kernel, Chandrashekhar RS
Aniruddha M Marathe wrote:
> Settimeofday(2) should return EINVAL in case where tv.tv_usec parameter is more than
> USEC_PER_SEC (more than 10^6 ) or for negative values of tv.tv_usec.
> It returns 0 (success) instead.
>
> Clock_settimeofday(2) (kernel/posix-timers.c) also uses do_sys_settimeofday() and faces the
> Same problem.
>
> I think this is a bug. If you confirm, I will send a patch.
Yes, it is a known problem, turned up by some the posix timers tests.
I suppose it is too much to ask, but it would be nice if
do_sys_settimeofday() took a timespec instead of a timeval. Of course
this changes the interface for all the archs, but it would allow the
clock_settimeofday to send in the nsec value.
-g
>
> Regards,
> Aniruddha Marathe
> WIPRO Technologies, India
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
--
George Anzinger george@mvista.com
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml
^ permalink raw reply [flat|nested] 7+ messages in thread
* [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value
@ 2003-04-11 5:12 Aniruddha M Marathe
2003-04-11 6:26 ` george anzinger
0 siblings, 1 reply; 7+ messages in thread
From: Aniruddha M Marathe @ 2003-04-11 5:12 UTC (permalink / raw)
To: george; +Cc: linux-kernel, Chandrashekhar RS
Settimeofday(2) should return EINVAL in case where tv.tv_usec parameter is more than
USEC_PER_SEC (more than 10^6 ) or for negative values of tv.tv_usec.
It returns 0 (success) instead.
Clock_settimeofday(2) (kernel/posix-timers.c) also uses do_sys_settimeofday() and faces the
Same problem.
I think this is a bug. If you confirm, I will send a patch.
Regards,
Aniruddha Marathe
WIPRO Technologies, India
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-05-02 17:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-11 13:07 [BUG] settimeofday(2) succeeds for microsecond value more than USEC_PER_SEC and for negative value Aniruddha M Marathe
2003-04-11 21:36 ` george anzinger
2003-05-02 18:06 ` Urs Thuermann
-- strict thread matches above, loose matches on Subject: below --
2003-04-12 10:43 Aniruddha M Marathe
2003-04-12 19:25 ` george anzinger
2003-04-11 5:12 Aniruddha M Marathe
2003-04-11 6:26 ` george anzinger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).