From: Eric Smith Date: Tue, 27 Oct 2009 12:12:44 +0000 (+0000) Subject: Issue 7117: Replace PyOS_ascii_strtod with PyOS_string_to_double in stropmodule as... X-Git-Tag: v2.7a1~232 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b53e1a6ed36cfcd0e7452e3c41dc47e4224dfdd1;p=thirdparty%2FPython%2Fcpython.git Issue 7117: Replace PyOS_ascii_strtod with PyOS_string_to_double in stropmodule as part of short float repr. --- diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c index 2d884744aa7f..7383194a7e2f 100644 --- a/Modules/stropmodule.c +++ b/Modules/stropmodule.c @@ -879,10 +879,12 @@ strop_atof(PyObject *self, PyObject *args) PyErr_SetString(PyExc_ValueError, "empty string for atof()"); return NULL; } - errno = 0; + PyFPE_START_PROTECT("strop_atof", return 0) - x = PyOS_ascii_strtod(s, &end); + x = PyOS_string_to_double(s, &end, PyExc_OverflowError); PyFPE_END_PROTECT(x) + if (x == -1 && PyErr_Occurred()) + return NULL; while (*end && isspace(Py_CHARMASK(*end))) end++; if (*end != '\0') { @@ -891,12 +893,6 @@ strop_atof(PyObject *self, PyObject *args) PyErr_SetString(PyExc_ValueError, buffer); return NULL; } - else if (errno != 0) { - PyOS_snprintf(buffer, sizeof(buffer), - "atof() literal too large: %.200s", s); - PyErr_SetString(PyExc_ValueError, buffer); - return NULL; - } return PyFloat_FromDouble(x); }