[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);
 }

AltStyle によって変換されたページ (->オリジナル) /