diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2009-10-31 12:47:47 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2009-10-31 12:47:47 (GMT) |
commit | 51ae4921b30ab48bd31976fc4f92345b1bd26f50 (patch) | |
tree | d74a222b4b87e139202c0fd5751f7e3a2c2fcef8 /Python/marshal.c | |
parent | 4b841d9156208d672a3848abb2798555552862d7 (diff) | |
download | cpython-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.c | 12 |
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; } |