]> granicus.if.org Git - python/commitdiff
Set retval on PyOS_string_to_double failure.
authorMark Dickinson <dickinsm@gmail.com>
Sat, 31 Oct 2009 12:47:47 +0000 (12:47 +0000)
committerMark Dickinson <dickinsm@gmail.com>
Sat, 31 Oct 2009 12:47:47 +0000 (12:47 +0000)
Python/marshal.c

index 865a0c88715a1ee994534eca93b0707e6e9eba65..c7015d2eb7b5960a326bd2e82367770b1ef060ae 100644 (file)
@@ -699,8 +699,10 @@ r_object(RFILE *p)
                        }
                        buf[n] = '\0';
                        dx = PyOS_string_to_double(buf, NULL, NULL);
-                       if (dx == -1.0 && PyErr_Occurred())
+                       if (dx == -1.0 && PyErr_Occurred()) {
+                               retval = NULL;
                                break;
+                       }
                        retval = PyFloat_FromDouble(dx);
                        break;
                }
@@ -738,8 +740,10 @@ r_object(RFILE *p)
                        }
                        buf[n] = '\0';
                        c.real = PyOS_string_to_double(buf, NULL, NULL);
-                       if (c.real == -1.0 && PyErr_Occurred())
+                       if (c.real == -1.0 && PyErr_Occurred()) {
+                               retval = NULL;
                                break;
+                       }
                        n = r_byte(p);
                        if (n == EOF || r_string(buf, (int)n, p) != n) {
                                PyErr_SetString(PyExc_EOFError,
@@ -749,8 +753,10 @@ r_object(RFILE *p)
                        }
                        buf[n] = '\0';
                        c.imag = PyOS_string_to_double(buf, NULL, NULL);
-                       if (c.imag == -1.0 && PyErr_Occurred())
+                       if (c.imag == -1.0 && PyErr_Occurred()) {
+                               retval = NULL;
                                break;
+                       }
                        retval = PyComplex_FromCComplex(c);
                        break;
                }