Give DH, DSA, and RSA functions to "up" their reference counts. Otherwise,
[openssl.git] / crypto / dsa / dsa_lib.c
index 5855568..98878df 100644 (file)
@@ -228,6 +228,22 @@ void DSA_free(DSA *r)
        OPENSSL_free(r);
        }
 
+int DSA_up(DSA *r)
+       {
+       int i = CRYPTO_add(&r->references, 1, CRYPTO_LOCK_DSA);
+#ifdef REF_PRINT
+       REF_PRINT("DSA",r);
+#endif
+#ifdef REF_CHECK
+       if (i < 2)
+               {
+               fprintf(stderr, "DSA_up, bad reference count\n");
+               abort();
+               }
+#endif
+       return ((i > 1) ? 1 : 0);
+       }
+
 int DSA_size(const DSA *r)
        {
        int ret,i;