]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[Backport r51221 | neal.norwitz -- the original commit message is wrong;
authorAndrew M. Kuchling <amk@amk.ca>
Thu, 5 Oct 2006 19:08:30 +0000 (19:08 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Thu, 5 Oct 2006 19:08:30 +0000 (19:08 +0000)
 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

index 4f4d6b3a5b4e30a5863435b4d1645ed73ff0fb60..ed87f954f8a579f4105d14c78ac2b0972cc9dde6 100644 (file)
@@ -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);