[Python-checkins] CVS: python/dist/src/Objects complexobject.c,2.51,2.52
Barry Warsaw
bwarsaw@users.sourceforge.net
Wed, 28 Nov 2001 12:50:58 -0800
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv12794
Modified Files:
complexobject.c
Log Message:
complex_to_buf(), complex_subtype_from_c_complex(): Conversion of
sprintf() to PyOS_snprintf() for buffer overrun avoidance.
complex_print(), complex_repr(), complex_str(): Call complex_to_buf()
passing in sizeof(buf).
Index: complexobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/complexobject.c,v
retrieving revision 2.51
retrieving revision 2.52
diff -C2 -d -r2.51 -r2.52
*** complexobject.c 2001/10/25 18:07:22 2.51
--- complexobject.c 2001/11/28 20:50:56 2.52
***************
*** 271,281 ****
static void
! complex_to_buf(char *buf, PyComplexObject *v, int precision)
{
if (v->cval.real == 0.)
! sprintf(buf, "%.*gj", precision, v->cval.imag);
else
! sprintf(buf, "(%.*g%+.*gj)", precision, v->cval.real,
! precision, v->cval.imag);
}
--- 271,283 ----
static void
! complex_to_buf(char *buf, int bufsz, PyComplexObject *v, int precision)
{
if (v->cval.real == 0.)
! PyOS_snprintf(buf, bufsz, "%.*gj",
! precision, v->cval.imag);
else
! PyOS_snprintf(buf, bufsz, "(%.*g%+.*gj)",
! precision, v->cval.real,
! precision, v->cval.imag);
}
***************
*** 284,288 ****
{
char buf[100];
! complex_to_buf(buf, v,
(flags & Py_PRINT_RAW) ? PREC_STR : PREC_REPR);
fputs(buf, fp);
--- 286,290 ----
{
char buf[100];
! complex_to_buf(buf, sizeof(buf), v,
(flags & Py_PRINT_RAW) ? PREC_STR : PREC_REPR);
fputs(buf, fp);
***************
*** 294,298 ****
{
char buf[100];
! complex_to_buf(buf, v, PREC_REPR);
return PyString_FromString(buf);
}
--- 296,300 ----
{
char buf[100];
! complex_to_buf(buf, sizeof(buf), v, PREC_REPR);
return PyString_FromString(buf);
}
***************
*** 302,306 ****
{
char buf[100];
! complex_to_buf(buf, v, PREC_STR);
return PyString_FromString(buf);
}
--- 304,308 ----
{
char buf[100];
! complex_to_buf(buf, sizeof(buf), v, PREC_STR);
return PyString_FromString(buf);
}
***************
*** 753,757 ****
PyFPE_END_PROTECT(z)
if (errno != 0) {
! sprintf(buffer,
"float() out of range: %.150s", s);
PyErr_SetString(
--- 755,759 ----
PyFPE_END_PROTECT(z)
if (errno != 0) {
! PyOS_snprintf(buffer, sizeof(buffer),
"float() out of range: %.150s", s);
PyErr_SetString(