• Fred Drake's avatar
    Trent Mick <trentm@activestate.com>: · 4c82b236
    Fred Drake authored
    This patch fixes possible overflow in the use of
    PyOS_GetLastModificationTime in getmtime.c and Python/import.c.
    
    Currently PyOS_GetLastModificationTime returns a C long. This can
    overflow on Win64 where sizeof(time_t) > sizeof(long). Besides it
    should logically return a time_t anyway (this patch changes this).
    
    As well, import.c uses PyOS_GetLastModificationTime for .pyc
    timestamping.  There has been recent discussion about the .pyc header
    format on python-dev.  This patch adds oveflow checking to import.c so
    that an exception will be raised if the modification time
    overflows. There are a few other minor 64-bit readiness changes made
    to the module as well:
    
    - size_t instead of int or long for function-local buffer and string
    length variables
    
    - one buffer overflow check was added (raises an exception on possible
    overflow, this overflow chance exists on 32-bit platforms as well), no
    other possible buffer overflows existed (from my analysis anyway)
    
    Closes SourceForge patch #100509.
    4c82b236
import.c 56.9 KB