From: Thomas Heller Date: Fri, 19 Oct 2001 13:49:35 +0000 (+0000) Subject: Fix for Bug #216405: X-Git-Tag: v2.2.1c1~1150 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fdc1bd305bcf8d6ebefe98313fa6c310623a0cb9;p=thirdparty%2FPython%2Fcpython.git Fix for Bug #216405: use the correct base for a buffer object in _PyBuffer_FromObject. --- diff --git a/Objects/bufferobject.c b/Objects/bufferobject.c index 242261f71876..57d031cade56 100644 --- a/Objects/bufferobject.c +++ b/Objects/bufferobject.c @@ -73,11 +73,13 @@ _PyBuffer_FromObject(PyObject *base, int offset, int size, offset = count; if ( offset + size > count ) size = count - offset; - - /* if the base object is another buffer, then "deref" it */ - if ( PyBuffer_Check(base) ) + + /* if the base object is another buffer, then "deref" it, + * except if the base of the other buffer is NULL + */ + if ( PyBuffer_Check(base) && (((PyBufferObject *)base)->b_base) ) base = ((PyBufferObject *)base)->b_base; - + return _PyBuffer_FromMemory(base, (char *)p + offset, size, readonly); }