• John Wright's avatar
    x86: gettimeofday() vDSO: fix segfault when tv == NULL · 2f65dd47
    John Wright authored
    According to the gettimeofday(2) manual:
    
           If either tv or tz is NULL, the corresponding structure is not
           set or returned.
    
    Since it is legal to give NULL as the tv argument, the code should make
    sure tv is not NULL before trying to dereference it.
    
    This issue manifests itself on x86_64 when vdso=0 is not on the kernel
    command-line and libc uses the vDSO for gettimeofday() (e.g. glibc >=
    2.7).  A simple reproducer:
    
      #include <stdio.h>
      #include <sys/time.h>
    
      int main(void)
      {
          struct timezone tz;
    
          gettimeofday(NULL, &tz);
    
          return 0;
      }
    
    See http://bugs.debian.org/466491 for more details.
    
    [ Impact: fix gettimeofday(NULL, &tz) segfault ]
    Signed-off-by: default avatarJohn Wright <john.wright@hp.com>
    Cc: Andi Kleen <ak@suse.de>
    Cc: John Wright <john.wright@hp.com>
    LKML-Reference: <1241037121-14805-1-git-send-email-john.wright@hp.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    2f65dd47
vclock_gettime.c 3.28 KB