Correctly handle extension initialization errors
diff --git a/src/crypto/x509ext.c b/src/crypto/x509ext.c
index 3b3c814..84df441 100644
--- a/src/crypto/x509ext.c
+++ b/src/crypto/x509ext.c
@@ -133,7 +133,7 @@
     exception_from_error_queue();
 
   critical_malloc_error:
-    PyObject_Free(self);
+    Py_XDECREF(self);
 
   error:
     return NULL;