• Arnd Bergmann's avatar
    y2038: elfcore: Use __kernel_old_timeval for process times · e2bb80d5
    Arnd Bergmann authored
    We store elapsed time for a crashed process in struct elf_prstatus using
    'timeval' structures. Once glibc starts using 64-bit time_t, this becomes
    incompatible with the kernel's idea of timeval since the structure layout
    no longer matches on 32-bit architectures.
    
    This changes the definition of the elf_prstatus structure to use
    __kernel_old_timeval instead, which is hardcoded to the currently used
    binary layout. There is no risk of overflow in y2038 though, because
    the time values are all relative times, and can store up to 68 years
    of process elapsed time.
    
    There is a risk of applications breaking at build time when they
    use the new kernel headers and expect the type to be exactly 'timeval'
    rather than a structure that has the same fields as before. Those
    applications have to be modified to deal with 64-bit time_t anyway.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    e2bb80d5
binfmt_elfo32.c 2.91 KB