Mercurial > cpython-lru_cache-weakref
diff Python/pystrtod.c @ 38480:9b001ebeaa5e legacy-trunk
Handle PyMem_Malloc failure in pystrtod.c. Closes #1494671.
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Mon, 29 May 2006 14:28:05 +0000 |
| parents | 3d477d158401 |
| children | 3d1a99b39fca |
line wrap: on
line diff
--- a/Python/pystrtod.c Mon May 29 14:13:21 2006 +0000 +++ b/Python/pystrtod.c Mon May 29 14:28:05 2006 +0000 @@ -31,6 +31,7 @@ * is returned (according to the sign of the value), and %ERANGE is * stored in %errno. If the correct value would cause underflow, * zero is returned and %ERANGE is stored in %errno. + * If memory allocation fails, %ENOMEM is stored in %errno. * * This function resets %errno before calling strtod() so that * you can reliably detect overflow and underflow. @@ -102,6 +103,12 @@ /* We need to convert the '.' to the locale specific decimal point */ copy = (char *)PyMem_MALLOC(end - nptr + 1 + decimal_point_len); + if (copy == NULL) { + if (endptr) + *endptr = nptr; + errno = ENOMEM; + return val; + } c = copy; memcpy(c, nptr, decimal_point_pos - nptr);
