Fix for internal running of tests.
PiperOrigin-RevId: 444297087
diff --git a/python/descriptor_pool.c b/python/descriptor_pool.c
index 5a61b4e..b8ca06d 100644
--- a/python/descriptor_pool.c
+++ b/python/descriptor_pool.c
@@ -572,11 +572,18 @@
size_t n;
const upb_FieldDef** ext = upb_DefPool_GetAllExtensions(self->symtab, m, &n);
PyObject* ret = PyList_New(n);
+ if (!ret) goto done;
for (size_t i = 0; i < n; i++) {
PyObject* field = PyUpb_FieldDescriptor_Get(ext[i]);
- if (!field) return NULL;
+ if (!field) {
+ Py_DECREF(ret);
+ ret = NULL;
+ goto done;
+ }
PyList_SetItem(ret, i, field);
}
+done:
+ free(ext);
return ret;
}