gh-95605: Fix float(s) error message when s contains only whitespace (GH-95665)

This PR fixes the error message from float(s) in the case where s contains only whitespace.
This commit is contained in:
Mark Dickinson 2022-08-10 19:25:39 +01:00 committed by GitHub
parent 37c0f9ccc0
commit 97e9cfa75a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

View file

@ -162,11 +162,18 @@ float_from_string_inner(const char *s, Py_ssize_t len, void *obj)
double x;
const char *end;
const char *last = s + len;
/* strip space */
/* strip leading whitespace */
while (s < last && Py_ISSPACE(*s)) {
s++;
}
if (s == last) {
PyErr_Format(PyExc_ValueError,
"could not convert string to float: "
"%R", obj);
return NULL;
}
/* strip trailing whitespace */
while (s < last - 1 && Py_ISSPACE(last[-1])) {
last--;
}