mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Bug 975996: Add _PyTime_DoubleToTimet to C API
New include file timefuncs.h exports private API function _PyTime_DoubleToTimet() from timemodule.c. timemodule should export some other functions too (look for painful bits in datetimemodule.c). Added insane-argument checking to datetime's assorted fromtimestamp() and utcfromtimestamp() methods. Added insane-argument tests of these to test_datetime, and insane-argument tests for ctime(), localtime() and gmtime() to test_time.
This commit is contained in:
parent
1c3fa18be7
commit
1b6f7a9057
6 changed files with 90 additions and 15 deletions
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "Python.h"
|
||||
#include "structseq.h"
|
||||
#include "timefuncs.h"
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
|
@ -84,11 +85,8 @@ static double floattime(void);
|
|||
/* For Y2K check */
|
||||
static PyObject *moddict;
|
||||
|
||||
/* Cast double x to time_t, but raise ValueError if x is too large
|
||||
* to fit in a time_t. ValueError is set on return iff the return
|
||||
* value is (time_t)-1 and PyErr_Occurred().
|
||||
*/
|
||||
static time_t
|
||||
/* Exposed in timefuncs.h. */
|
||||
time_t
|
||||
_PyTime_DoubleToTimet(double x)
|
||||
{
|
||||
time_t result;
|
||||
|
@ -382,7 +380,7 @@ time_strftime(PyObject *self, PyObject *args)
|
|||
/* Checks added to make sure strftime() does not crash Python by
|
||||
indexing blindly into some array for a textual representation
|
||||
by some bad index (fixes bug #897625).
|
||||
|
||||
|
||||
No check for year since handled in gettmarg().
|
||||
*/
|
||||
if (buf.tm_mon < 0 || buf.tm_mon > 11) {
|
||||
|
@ -583,7 +581,7 @@ time_tzset(PyObject *self, PyObject *args)
|
|||
/* Reset timezone, altzone, daylight and tzname */
|
||||
inittimezone(m);
|
||||
Py_DECREF(m);
|
||||
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue