From: Andrew M. Kuchling Date: Thu, 5 Oct 2006 19:08:30 +0000 (+0000) Subject: [Backport r51221 | neal.norwitz -- the original commit message is wrong; X-Git-Tag: v2.4.4c1~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=154a884e6b562dc5b9f04c8a114a7efd12e42723;p=thirdparty%2FPython%2Fcpython.git [Backport r51221 | neal.norwitz -- the original commit message is wrong; this code is only used if WITHOUT_COMPLEX is *not* defined, which is the common case for Python builds.] This code is actually not used unless WITHOUT_COMPLEX is defined. However, there was no error checking that PyFloat_FromDouble returned a valid pointer. I believe this change is correct as it seemed to follow other code in the area. Klocwork # 292. --- diff --git a/Python/marshal.c b/Python/marshal.c index 4f4d6b3a5b4e..ed87f954f8a5 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -177,6 +177,10 @@ w_object(PyObject *v, WFILE *p) w_byte(TYPE_COMPLEX, p); temp = (PyFloatObject*)PyFloat_FromDouble( PyComplex_RealAsDouble(v)); + if (!temp) { + p->error = 1; + return; + } PyFloat_AsReprString(buf, temp); Py_DECREF(temp); n = strlen(buf); @@ -184,6 +188,10 @@ w_object(PyObject *v, WFILE *p) w_string(buf, n, p); temp = (PyFloatObject*)PyFloat_FromDouble( PyComplex_ImagAsDouble(v)); + if (!temp) { + p->error = 1; + return; + } PyFloat_AsReprString(buf, temp); Py_DECREF(temp); n = strlen(buf);