[Python-checkins] r54757 - python/trunk/Objects/exceptions.c python/trunk/Objects/longobject.c (original) (raw)

georg.brandl python-checkins at python.org
Wed Apr 11 19:16:25 CEST 2007


Author: georg.brandl Date: Wed Apr 11 19:16:24 2007 New Revision: 54757

Modified: python/trunk/Objects/exceptions.c python/trunk/Objects/longobject.c Log: Add some missing NULL checks which trigger crashes on low-memory conditions. Found by Victor Stinner. Will backport when 2.5 branch is unfrozen.

Modified: python/trunk/Objects/exceptions.c

--- python/trunk/Objects/exceptions.c (original) +++ python/trunk/Objects/exceptions.c Wed Apr 11 19:16:24 2007 @@ -33,6 +33,8 @@ PyBaseExceptionObject *self;

 self = (PyBaseExceptionObject *)type->tp_alloc(type, 0);

Modified: python/trunk/Objects/longobject.c

--- python/trunk/Objects/longobject.c (original) +++ python/trunk/Objects/longobject.c Wed Apr 11 19:16:24 2007 @@ -1739,6 +1739,8 @@ a->ob_digit[size_a-1] < b->ob_digit[size_b-1])) { /* |a| < |b|. */ *pdiv = _PyLong_New(0); + if (*pdiv == NULL) + return -1; Py_INCREF(a); *prem = (PyLongObject *) a; return 0; @@ -1749,6 +1751,10 @@ if (z == NULL) return -1; *prem = (PyLongObject *) PyLong_FromLong((long)rem); + if (*prem == NULL) { + Py_DECREF(z); + return -1; + } } else { z = x_divrem(a, b, prem); @@ -3204,6 +3210,8 @@ { if (PyInt_Check(*pw)) { *pw = PyLong_FromLong(PyInt_AS_LONG(*pw)); + if (*pw == NULL) + return -1; Py_INCREF(*pv); return 0; }



More information about the Python-checkins mailing list