fixed a leak in the event of non-DNS GN
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 06801bc..bbec618 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -146,10 +146,11 @@
     )
 
     for alt_name in san:
-        gn = backend._lib.GENERAL_NAME_new()
-        assert gn != backend._ffi.NULL
         if isinstance(alt_name, x509.DNSName):
+            gn = backend._lib.GENERAL_NAME_new()
+            assert gn != backend._ffi.NULL
             gn.type = backend._lib.GEN_DNS
+
             ia5 = backend._lib.ASN1_IA5STRING_new()
             assert ia5 != backend._ffi.NULL