weakref_repr(), proxy_repr(): Conversion of sprintf() to

PyOS_snprintf() for buffer overrun avoidance.
This commit is contained in:
Barry Warsaw 2001-11-28 21:01:56 +00:00
parent e5c492d72a
commit d586756dc5

View file

@ -131,13 +131,15 @@ weakref_repr(PyWeakReference *self)
{ {
char buffer[256]; char buffer[256];
if (PyWeakref_GET_OBJECT(self) == Py_None) { if (PyWeakref_GET_OBJECT(self) == Py_None) {
sprintf(buffer, "<weakref at %lx; dead>", PyOS_snprintf(buffer, sizeof(buffer), "<weakref at %lx; dead>",
(long)(self)); (long)(self));
} }
else { else {
sprintf(buffer, "<weakref at %#lx; to '%.50s' at %#lx>", PyOS_snprintf(buffer, sizeof(buffer),
(long)(self), PyWeakref_GET_OBJECT(self)->ob_type->tp_name, "<weakref at %#lx; to '%.50s' at %#lx>",
(long)(PyWeakref_GET_OBJECT(self))); (long)(self),
PyWeakref_GET_OBJECT(self)->ob_type->tp_name,
(long)(PyWeakref_GET_OBJECT(self)));
} }
return PyString_FromString(buffer); return PyString_FromString(buffer);
} }
@ -265,9 +267,10 @@ static PyObject *
proxy_repr(PyWeakReference *proxy) proxy_repr(PyWeakReference *proxy)
{ {
char buf[160]; char buf[160];
sprintf(buf, "<weakref at %p to %.100s at %p>", proxy, PyOS_snprintf(buf, sizeof(buf),
PyWeakref_GET_OBJECT(proxy)->ob_type->tp_name, "<weakref at %p to %.100s at %p>", proxy,
PyWeakref_GET_OBJECT(proxy)); PyWeakref_GET_OBJECT(proxy)->ob_type->tp_name,
PyWeakref_GET_OBJECT(proxy));
return PyString_FromString(buf); return PyString_FromString(buf);
} }