mirror of
https://github.com/python/cpython.git
synced 2026-01-06 07:22:09 +00:00
Trent Mick <trentm@activestate.com>:
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.
This commit is contained in:
parent
4358b2c928
commit
4c82b2366f
2 changed files with 33 additions and 14 deletions
|
|
@ -33,13 +33,14 @@ PERFORMANCE OF THIS SOFTWARE.
|
|||
|
||||
/* (A separate file because this may be OS dependent) */
|
||||
|
||||
#include "Python.h"
|
||||
#include "config.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
long
|
||||
time_t
|
||||
PyOS_GetLastModificationTime(path, fp)
|
||||
char *path;
|
||||
FILE *fp;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue