From 17e6722c745c203f82c18105631ed1687be0f83e Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sun, 16 Feb 2025 16:56:37 +0500 Subject: [PATCH] Fix some references leaks in _pickle --- Modules/_pickle.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 5641f93391c551..23a58d381556fc 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -4725,6 +4725,7 @@ Pickler_clear(PicklerObject *self) Py_CLEAR(self->output_buffer); Py_CLEAR(self->write); Py_CLEAR(self->persistent_id); + Py_CLEAR(self->persistent_id_attr); Py_CLEAR(self->dispatch_table); Py_CLEAR(self->fast_memo); Py_CLEAR(self->reducer_override); @@ -4754,6 +4755,7 @@ Pickler_traverse(PicklerObject *self, visitproc visit, void *arg) Py_VISIT(Py_TYPE(self)); Py_VISIT(self->write); Py_VISIT(self->persistent_id); + Py_VISIT(self->persistent_id_attr); Py_VISIT(self->dispatch_table); Py_VISIT(self->fast_memo); Py_VISIT(self->reducer_override); @@ -7227,6 +7229,7 @@ Unpickler_clear(UnpicklerObject *self) Py_CLEAR(self->peek); Py_CLEAR(self->stack); Py_CLEAR(self->persistent_load); + Py_CLEAR(self->persistent_load_attr); Py_CLEAR(self->buffers); if (self->buffer.buf != NULL) { PyBuffer_Release(&self->buffer); @@ -7266,6 +7269,7 @@ Unpickler_traverse(UnpicklerObject *self, visitproc visit, void *arg) Py_VISIT(self->peek); Py_VISIT(self->stack); Py_VISIT(self->persistent_load); + Py_VISIT(self->persistent_load_attr); Py_VISIT(self->buffers); PyObject **memo = self->memo; if (memo) {