PyTuple_Pack() was missing va_end() in its error branch which lead to a resource leak.
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 3249ccc..00f2e47 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -192,8 +192,10 @@
 
     va_start(vargs, n);
     result = PyTuple_New(n);
-    if (result == NULL)
+    if (result == NULL) {
+        va_end(vargs);
         return NULL;
+    }
     items = ((PyTupleObject *)result)->ob_item;
     for (i = 0; i < n; i++) {
         o = va_arg(vargs, PyObject *);