Re: [PATCH RFC] gettimeofday.2: Don't allow "tv" to be NULL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Thomas,

On 5/30/23 18:40, Thomas Weißschuh wrote:
> POSIX does not allow "tv" to be NULL.
> 
> On glibc and gnulib calling gettimeofday(NULL, NULL) can segfault.
> 
> For glibc see __gettimeofday() and __gettimeofday64() in
> sysdeps/unix/sysv/linux/gettimeofday.c.
> 
> Note that by default glibc may use the gettimeofday() syscall or vdso
> function which both support "tv" to be NULL.
> The segfault can be triggered by compiling a i386 binary on a x86_64
> system.

What happens with the Linux syscall?  What does it do for NULL in tv?

Thanks,
Alex

> 
> Signed-off-by: Thomas Weißschuh <thomas@xxxxxxxx>
> ---
>  man2/gettimeofday.2 | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/man2/gettimeofday.2 b/man2/gettimeofday.2
> index 9d134fa49de7..cdbec5ede23c 100644
> --- a/man2/gettimeofday.2
> +++ b/man2/gettimeofday.2
> @@ -85,16 +85,14 @@ struct timezone {
>  .EE
>  .in
>  .PP
> -If either
> -.I tv
> -or
> +If
>  .I tz
> -is NULL, the corresponding structure is not set or returned.
> +is NULL, the structure is not set or returned.
>  .\" FIXME . The compilation warning looks to be going away in glibc 2.17
>  .\" see glibc commit 4b7634a5e03b0da6f8875de9d3f74c1cf6f2a6e8
> -(However, compilation warnings will result if
> +If
>  .I tv
> -is NULL.)
> +is NULL, the behavior is unspecified.
>  .\" The following is covered under EPERM below:
>  .\" .PP
>  .\" Only the superuser may use
> 
> ---
> base-commit: f0067f73941ea0e512b9018a123472508a0858db
> change-id: 20230530-gettimeofday-null-7ee404b7825f
> 
> Best regards,

-- 
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux