bpo-31095: fix potential crash during GC (GH-2974)

diff --git a/Modules/_struct.c b/Modules/_struct.c
index b5fbc43..69a1e99 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -1589,6 +1589,8 @@
 static void
 unpackiter_dealloc(unpackiterobject *self)
 {
+    /* bpo-31095: UnTrack is needed before calling any callbacks */
+    PyObject_GC_UnTrack(self);
     Py_XDECREF(self->so);
     PyBuffer_Release(&self->buf);
     PyObject_GC_Del(self);