summaryrefslogtreecommitdiffstats
path: root/Python/marshal.c
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-10-31 12:47:47 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-10-31 12:47:47 (GMT)
commit51ae4921b30ab48bd31976fc4f92345b1bd26f50 (patch)
treed74a222b4b87e139202c0fd5751f7e3a2c2fcef8 /Python/marshal.c
parent4b841d9156208d672a3848abb2798555552862d7 (diff)
downloadcpython-51ae4921b30ab48bd31976fc4f92345b1bd26f50.zip
cpython-51ae4921b30ab48bd31976fc4f92345b1bd26f50.tar.gz
cpython-51ae4921b30ab48bd31976fc4f92345b1bd26f50.tar.bz2
Set retval on PyOS_string_to_double failure.
Diffstat (limited to 'Python/marshal.c')
-rw-r--r--Python/marshal.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/Python/marshal.c b/Python/marshal.c
index 865a0c8..c7015d2 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -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;
}