Staging
v0.5.1
https://github.com/python/cpython
Revision da604c19923ef1fd365a0ace5bb8c6e0bbe763ce authored by Andrew M. Kuchling on 05 October 2006, 18:49:36 UTC, committed by Andrew M. Kuchling on 05 October 2006, 18:49:36 UTC
 but looks correct on a casual inspection and hasn't been modified
 in the trunk.  Does anyone want to review further?]

Ensure we don't write beyond errText.  I think I got this right, but
it definitely could use some review to ensure I'm not off by one
and there's no possible overflow/wrap-around of bytes_left.
Reported by Klocwork #1.

Fix a problem if there is a failure allocating self->db.
Found with failmalloc.
1 parent 9788095
Raw File
Tip revision: da604c19923ef1fd365a0ace5bb8c6e0bbe763ce authored by Andrew M. Kuchling on 05 October 2006, 18:49:36 UTC
[Backport r50783 | neal.norwitz. The bytes_left code is complicated,
Tip revision: da604c1
cellobject.h
/* Cell object interface */

#ifndef Py_CELLOBJECT_H
#define Py_CELLOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
	PyObject_HEAD
	PyObject *ob_ref;	/* Content of the cell or NULL when empty */
} PyCellObject;

PyAPI_DATA(PyTypeObject) PyCell_Type;

#define PyCell_Check(op) ((op)->ob_type == &PyCell_Type)

PyAPI_FUNC(PyObject *) PyCell_New(PyObject *);
PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *);
PyAPI_FUNC(int) PyCell_Set(PyObject *, PyObject *);

#define PyCell_GET(op) (((PyCellObject *)(op))->ob_ref)
#define PyCell_SET(op, v) (((PyCellObject *)(op))->ob_ref = v)

#ifdef __cplusplus
}
#endif
#endif /* !Py_TUPLEOBJECT_H */
back to top