Use PyOS_snprintf instead of sprintf.

Just being sure.  The old code looks like it was safe, but there's no
harm in double-checking.
This commit is contained in:
Jeremy Hylton 2001-11-28 20:24:33 +00:00
parent a30eacf458
commit 05bd787c6c
1 changed files with 11 additions and 11 deletions

View File

@ -810,21 +810,21 @@ SyntaxError__str__(PyObject *self, PyObject *args)
if (have_filename)
bufsize += PyString_GET_SIZE(filename);
buffer = PyMem_Malloc(bufsize);
buffer = PyMem_MALLOC(bufsize);
if (buffer != NULL) {
if (have_filename && have_lineno)
sprintf(buffer, "%s (%s, line %ld)",
PyString_AS_STRING(str),
my_basename(PyString_AS_STRING(filename)),
PyInt_AsLong(lineno));
PyOS_snprintf(buffer, bufsize, "%s (%s, line %ld)",
PyString_AS_STRING(str),
my_basename(PyString_AS_STRING(filename)),
PyInt_AsLong(lineno));
else if (have_filename)
sprintf(buffer, "%s (%s)",
PyString_AS_STRING(str),
my_basename(PyString_AS_STRING(filename)));
PyOS_snprintf(buffer, bufsize, "%s (%s)",
PyString_AS_STRING(str),
my_basename(PyString_AS_STRING(filename)));
else if (have_lineno)
sprintf(buffer, "%s (line %ld)",
PyString_AS_STRING(str),
PyInt_AsLong(lineno));
PyOS_snprintf(buffer, bufsize, "%s (line %ld)",
PyString_AS_STRING(str),
PyInt_AsLong(lineno));
result = PyString_FromString(buffer);
PyMem_FREE(buffer);