diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-02-04 22:57:44 +0200 |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-02-04 22:57:44 +0200 |
commit | 44a28ecbe2c09fe5ec4959c254fdfe5b6a9fe322 (patch) | |
tree | 007442e524d9584fe16f0d80ad2b8933809f3b1b /Modules/timemodule.c | |
parent | 2296b978597ce62ec2185b78a43811610af2c0ea (diff) | |
parent | efe8c92c7a269af2f9ded960735e74d62d791330 (diff) | |
download | cpython-44a28ecbe2c09fe5ec4959c254fdfe5b6a9fe322.tar.gz |
Issue #29444: Fixed out-of-bounds buffer access in the group() method of
the match object. Based on patch by WGH.
Diffstat (limited to 'Modules/timemodule.c')
-rw-r--r-- | Modules/timemodule.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/Modules/timemodule.c b/Modules/timemodule.c index ebd44ad525..25eb92dada 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -234,8 +234,7 @@ time_sleep(PyObject *self, PyObject *obj) } if (pysleep(secs) != 0) return NULL; - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyDoc_STRVAR(sleep_doc, @@ -717,16 +716,22 @@ is not present, current time as returned by localtime() is used.\n\ static PyObject * time_strptime(PyObject *self, PyObject *args) { - PyObject *strptime_module = PyImport_ImportModuleNoBlock("_strptime"); - PyObject *strptime_result; + PyObject *module, *func, *result; _Py_IDENTIFIER(_strptime_time); - if (!strptime_module) + module = PyImport_ImportModuleNoBlock("_strptime"); + if (!module) + return NULL; + + func = _PyObject_GetAttrId(module, &PyId__strptime_time); + Py_DECREF(module); + if (!func) { return NULL; - strptime_result = _PyObject_CallMethodId(strptime_module, - &PyId__strptime_time, "O", args); - Py_DECREF(strptime_module); - return strptime_result; + } + + result = PyObject_Call(func, args, NULL); + Py_DECREF(func); + return result; } @@ -873,8 +878,7 @@ time_tzset(PyObject *self, PyObject *unused) if (PyErr_Occurred()) return NULL; - Py_INCREF(Py_None); - return Py_None; + Py_RETURN_NONE; } PyDoc_STRVAR(tzset_doc, |