• J
    x86: gettimeofday() vDSO: fix segfault when tv == NULL · 2f65dd47
    John Wright 提交于
    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: NJohn 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: NIngo Molnar <mingo@elte.hu>
    2f65dd47
vclock_gettime.c 3.3 KB