mirror of https://github.com/python/cpython
gh-87804: Fix the refleak in error handling of `_pystatvfs_fromstructstatfs` (#115335)
It was the macro expansion! Sorry!
This commit is contained in:
parent
91822018ee
commit
91bf01d4b1
|
@ -12916,14 +12916,15 @@ _pystatvfs_fromstructstatfs(PyObject *module, struct statfs st) {
|
|||
|
||||
_Static_assert(sizeof(st.f_blocks) == sizeof(long long), "assuming large file");
|
||||
|
||||
#define SET_ITEM(v, index, item) \
|
||||
do { \
|
||||
if (item == NULL) { \
|
||||
Py_DECREF(v); \
|
||||
return NULL; \
|
||||
} \
|
||||
PyStructSequence_SET_ITEM(v, index, item); \
|
||||
} while (0) \
|
||||
#define SET_ITEM(SEQ, INDEX, EXPR) \
|
||||
do { \
|
||||
PyObject *obj = (EXPR); \
|
||||
if (obj == NULL) { \
|
||||
Py_DECREF((SEQ)); \
|
||||
return NULL; \
|
||||
} \
|
||||
PyStructSequence_SET_ITEM((SEQ), (INDEX), obj); \
|
||||
} while (0)
|
||||
|
||||
SET_ITEM(v, 0, PyLong_FromLong((long) st.f_iosize));
|
||||
SET_ITEM(v, 1, PyLong_FromLong((long) st.f_bsize));
|
||||
|
|
Loading…
Reference in New Issue