va_end() all va_copy()ed va_lists.
diff --git a/Objects/abstract.c b/Objects/abstract.c
index c6c957b..c167125 100644
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2702,6 +2702,7 @@
     else {
         stack = PyMem_Malloc(n * sizeof(stack[0]));
         if (stack == NULL) {
+            va_end(countva);
             PyErr_NoMemory();
             return NULL;
         }
@@ -2710,6 +2711,7 @@
     for (i = 0; i < n; ++i) {
         stack[i] = va_arg(va, PyObject *);
     }
+    va_end(countva);
     return stack;
 }