[Python-checkins] CVS: python/dist/src/Objects intobject.c,2.76,2.77
Barry Warsaw
bwarsaw@users.sourceforge.net
2001年11月28日 12:55:36 -0800
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv14234
Modified Files:
intobject.c
Log Message:
PyInt_FromString(), int_repr(), int_oct(), int_hex(): Conversion of
sprintf() to PyOS_snprintf() for buffer overrun avoidance.
Index: intobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/intobject.c,v
retrieving revision 2.76
retrieving revision 2.77
diff -C2 -d -r2.76 -r2.77
*** intobject.c 2001年09月19日 01:25:15 2.76
--- intobject.c 2001年11月28日 20:55:34 2.77
***************
*** 199,208 ****
if (*end != '0円') {
bad:
! sprintf(buffer, "invalid literal for int(): %.200s", s);
PyErr_SetString(PyExc_ValueError, buffer);
return NULL;
}
else if (errno != 0) {
! sprintf(buffer, "int() literal too large: %.200s", s);
PyErr_SetString(PyExc_ValueError, buffer);
return NULL;
--- 199,210 ----
if (*end != '0円') {
bad:
! PyOS_snprintf(buffer, sizeof(buffer),
! "invalid literal for int(): %.200s", s);
PyErr_SetString(PyExc_ValueError, buffer);
return NULL;
}
else if (errno != 0) {
! PyOS_snprintf(buffer, sizeof(buffer),
! "int() literal too large: %.200s", s);
PyErr_SetString(PyExc_ValueError, buffer);
return NULL;
***************
*** 258,262 ****
{
char buf[20];
! sprintf(buf, "%ld", v->ob_ival);
return PyString_FromString(buf);
}
--- 260,264 ----
{
char buf[20];
! PyOS_snprintf(buf, sizeof(buf), "%ld", v->ob_ival);
return PyString_FromString(buf);
}
***************
*** 821,825 ****
strcpy(buf, "0");
else
! sprintf(buf, "0%lo", x);
return PyString_FromString(buf);
}
--- 823,827 ----
strcpy(buf, "0");
else
! PyOS_snprintf(buf, sizeof(buf), "0%lo", x);
return PyString_FromString(buf);
}
***************
*** 830,834 ****
char buf[100];
long x = v -> ob_ival;
! sprintf(buf, "0x%lx", x);
return PyString_FromString(buf);
}
--- 832,836 ----
char buf[100];
long x = v -> ob_ival;
! PyOS_snprintf(buf, sizeof(buf), "0x%lx", x);
return PyString_FromString(buf);
}