*** Python/bltinmodule.c.orig Fri Jul 24 15:23:33 1998 --- Python/bltinmodule.c Sat Jul 25 23:28:53 1998 *************** *** 2100,2111 **** s = PyString_AS_STRING(v); while (*s && isspace(Py_CHARMASK(*s))) s++; - if (s[0] == '\0') { - PyErr_SetString(PyExc_ValueError, "empty string for int()"); - return NULL; - } errno = 0; x = PyOS_strtol(s, &end, 10); while (*end && isspace(Py_CHARMASK(*end))) end++; if (*end != '\0') { --- 2100,2111 ---- s = PyString_AS_STRING(v); while (*s && isspace(Py_CHARMASK(*s))) s++; errno = 0; x = PyOS_strtol(s, &end, 10); + if (end == s || !isdigit(end[-1])) { + PyErr_SetString(PyExc_ValueError, "no digits in int constant"); + return NULL; + } while (*end && isspace(Py_CHARMASK(*end))) end++; if (*end != '\0') { *************** *** 2113,2119 **** PyErr_SetString(PyExc_ValueError, buffer); return NULL; } ! else if (end-s != PyString_GET_SIZE(v)) { PyErr_SetString(PyExc_ValueError, "null byte in argument for int()"); return NULL; --- 2113,2119 ---- PyErr_SetString(PyExc_ValueError, buffer); return NULL; } ! else if (end != PyString_AS_STRING(v) + PyString_GET_SIZE(v)) { PyErr_SetString(PyExc_ValueError, "null byte in argument for int()"); return NULL; *************** *** 2137,2146 **** s = PyString_AS_STRING(v); while (*s && isspace(Py_CHARMASK(*s))) s++; - if (s[0] == '\0') { - PyErr_SetString(PyExc_ValueError, "empty string for long()"); - return NULL; - } x = PyLong_FromString(s, &end, 10); if (x == NULL) return NULL; --- 2137,2142 ---- *************** *** 2152,2160 **** Py_DECREF(x); return NULL; } ! else if (end-s != PyString_GET_SIZE(v)) { PyErr_SetString(PyExc_ValueError, ! "null byte in argument for float()"); return NULL; } return x; --- 2148,2156 ---- Py_DECREF(x); return NULL; } ! else if (end != PyString_AS_STRING(v) + PyString_GET_SIZE(v)) { PyErr_SetString(PyExc_ValueError, ! "null byte in argument for long()"); return NULL; } return x; *************** *** 2187,2193 **** PyErr_SetString(PyExc_ValueError, buffer); return NULL; } ! else if (end-s != PyString_GET_SIZE(v)) { PyErr_SetString(PyExc_ValueError, "null byte in argument for float()"); return NULL; --- 2183,2189 ---- PyErr_SetString(PyExc_ValueError, buffer); return NULL; } ! else if (end != PyString_AS_STRING(v) + PyString_GET_SIZE(v)) { PyErr_SetString(PyExc_ValueError, "null byte in argument for float()"); return NULL;