diff Python/marshal.c @ 40018:2a46b76beb9e 2.4

[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.
author Andrew M. Kuchling <amk@amk.ca>
date Thu, 05 Oct 2006 19:08:30 +0000
parents a9b1f404e88b
children
line wrap: on
line diff
--- a/Python/marshal.c	Thu Oct 05 19:01:50 2006 +0000
+++ b/Python/marshal.c	Thu Oct 05 19:08:30 2006 +0000
@@ -177,6 +177,10 @@
 		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_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);