[PATCH v2] Linux: Fix UTC offset setting in settimeofday for __TIMESIZE != 64
Florian Weimer
fweimer@redhat.com
Tue Jun 30 19:19:37 GMT 2020
* Adhemerval Zanella:
> On 30/06/2020 15:45, Florian Weimer wrote:
>> The time argument is NULL in this case, and attempt to convert it
>> leads to a null pointer dereference.
>>
>> This fixes commit d2e3b697da2433c08702f95c76458c51545c3df1
>> ("y2038: linux: Provide __settimeofday64 implementation").
>
> LGTM, thanks.
>
> Reviwed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
>
>>
>> ---
>> v2: Add just a null pointer check. Tested on x86_64-linux-gnu and
>> i686-linux-gnu.
>>
>> sysdeps/unix/sysv/linux/settimeofday.c | 11 ++++++++---
>> 1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/sysdeps/unix/sysv/linux/settimeofday.c b/sysdeps/unix/sysv/linux/settimeofday.c
>> index ea45f1d7cb..6f4bc7ef3c 100644
>> --- a/sysdeps/unix/sysv/linux/settimeofday.c
>> +++ b/sysdeps/unix/sysv/linux/settimeofday.c
>> @@ -25,6 +25,7 @@
>> int
>> __settimeofday64 (const struct __timeval64 *tv, const struct timezone *tz)
>> {
>> + /* Backwards compatibility for setting the UTC offset. */
>> if (__glibc_unlikely (tz != 0))
>> {
>> if (tv != 0)
>> @@ -45,9 +46,13 @@ libc_hidden_def (__settimeofday64)
>> int
>> __settimeofday (const struct timeval *tv, const struct timezone *tz)
>> {
>> - struct __timeval64 tv64 = valid_timeval_to_timeval64 (*tv);
>> -
>> - return __settimeofday64 (&tv64, tz);
>> + if (__glibc_unlikely (tv == NULL))
>> + return __settimeofday64 (NULL, tz);
>
> Indentation seems off here.
Thanks. I'm going to fix this before committing.
Thanks,
Florian
More information about the Libc-alpha
mailing list