Index: Modules/stropmodule.c =================================================================== RCS file: /projects/cvsroot/python/dist/src/Modules/stropmodule.c,v retrieving revision 2.48 diff -c -r2.48 stropmodule.c *** stropmodule.c 1998/05/22 00:53:47 2.48 --- stropmodule.c 1998/07/25 04:23:01 *************** *** 696,713 **** while (*s && isspace(Py_CHARMASK(*s))) s++; - if (s[0] == '\0') { - PyErr_SetString(PyExc_ValueError, "empty string for atoi()"); - return NULL; - } errno = 0; if (base == 0 && s[0] == '0') x = (long) PyOS_strtoul(s, &end, base); else x = PyOS_strtol(s, &end, base); while (*end && isspace(Py_CHARMASK(*end))) end++; if (*end != '\0') { sprintf(buffer, "invalid literal for atoi(): %.200s", s); PyErr_SetString(PyExc_ValueError, buffer); return NULL; --- 696,712 ---- while (*s && isspace(Py_CHARMASK(*s))) s++; errno = 0; if (base == 0 && s[0] == '0') x = (long) PyOS_strtoul(s, &end, base); else x = PyOS_strtol(s, &end, base); + if (end == s || !isxdigit(end[-1])) + goto bad; while (*end && isspace(Py_CHARMASK(*end))) end++; if (*end != '\0') { + bad: sprintf(buffer, "invalid literal for atoi(): %.200s", s); PyErr_SetString(PyExc_ValueError, buffer); return NULL;