Fix didn't release while DSA key generation.
diff --git a/OpenSSL/crypto/pkey.c b/OpenSSL/crypto/pkey.c
index debc043..cb60211 100644
--- a/OpenSSL/crypto/pkey.c
+++ b/OpenSSL/crypto/pkey.c
@@ -64,11 +64,15 @@
         case crypto_TYPE_DSA:
             Py_BEGIN_ALLOW_THREADS;
             dsa = DSA_generate_parameters(bits, NULL, 0, NULL, NULL, NULL, NULL);
+            if (dsa == NULL) {
+                Py_END_ALLOW_THREADS;
+                FAIL();
+            }
+            if (!DSA_generate_key(dsa)) {
+                Py_END_ALLOW_THREADS;
+                FAIL();
+            }
             Py_END_ALLOW_THREADS;
-            if (dsa == NULL)
-                FAIL();
-            if (!DSA_generate_key(dsa))
-                FAIL();
             if (!EVP_PKEY_assign_DSA(self->pkey, dsa))
                 FAIL();
 	    break;