From: Amaury Forgeot d'Arc Date: Sun, 17 Aug 2008 21:05:18 +0000 (+0000) Subject: Fix a refleak in bytearray.split and bytearray.rsplit, detected by X-Git-Tag: v2.6b3~47 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=313bda12e8dfe618c6ef2f3681b5ce02409891c8;p=python Fix a refleak in bytearray.split and bytearray.rsplit, detected by regrtest.py -R:: test_bytes --- diff --git a/Objects/bytearrayobject.c b/Objects/bytearrayobject.c index 9ff44586f7..5ba1f6d8e5 100644 --- a/Objects/bytearrayobject.c +++ b/Objects/bytearrayobject.c @@ -2295,8 +2295,11 @@ bytes_split(PyByteArrayObject *self, PyObject *args) PyBuffer_Release(&vsub); return NULL; } - if (n == 1) - return split_char(s, len, sub[0], maxsplit); + if (n == 1) { + list = split_char(s, len, sub[0], maxsplit); + PyBuffer_Release(&vsub); + return list; + } list = PyList_New(PREALLOC_SIZE(maxsplit)); if (list == NULL) { @@ -2527,8 +2530,11 @@ bytes_rsplit(PyByteArrayObject *self, PyObject *args) PyBuffer_Release(&vsub); return NULL; } - else if (n == 1) - return rsplit_char(s, len, sub[0], maxsplit); + else if (n == 1) { + list = rsplit_char(s, len, sub[0], maxsplit); + PyBuffer_Release(&vsub); + return list; + } list = PyList_New(PREALLOC_SIZE(maxsplit)); if (list == NULL) {