From 154a884e6b562dc5b9f04c8a114a7efd12e42723 Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Thu, 5 Oct 2006 19:08:30 +0000 Subject: [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. --- Python/marshal.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Python/marshal.c b/Python/marshal.c index 4f4d6b3..ed87f95 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); -- cgit v0.12