Merge pull request #5636 from BrzVlad/fix-xmm-scan
[mono.git] / mono / btls / btls-x509-lookup.c
index 1cfc1741a363736559a345dee6b04cbb2db9b8b3..9e7dbee7702035c34b13a2110976531166bd2aad 100644 (file)
@@ -32,7 +32,7 @@ get_lookup_method (MonoBtlsX509LookupType type)
        }
 }
 
-MonoBtlsX509Lookup *
+MONO_API MonoBtlsX509Lookup *
 mono_btls_x509_lookup_new (MonoBtlsX509Store *store, MonoBtlsX509LookupType type)
 {
        MonoBtlsX509Lookup *lookup;
@@ -48,8 +48,10 @@ mono_btls_x509_lookup_new (MonoBtlsX509Store *store, MonoBtlsX509LookupType type
                return NULL;
 
        store_lookup = X509_STORE_add_lookup (mono_btls_x509_store_peek_store (store), method);
-       if (!store_lookup)
+       if (!store_lookup) {
+               OPENSSL_free (lookup);
                return NULL;
+       }
 
        memset (lookup, 0, sizeof(MonoBtlsX509Lookup));
        // The X509_STORE owns the X509_LOOKUP.
@@ -61,26 +63,26 @@ mono_btls_x509_lookup_new (MonoBtlsX509Store *store, MonoBtlsX509LookupType type
        return lookup;
 }
 
-int
+MONO_API int
 mono_btls_x509_lookup_load_file (MonoBtlsX509Lookup *lookup, const char *file, MonoBtlsX509FileType type)
 {
        return X509_LOOKUP_load_file (lookup->lookup, file, type);
 }
 
-int
+MONO_API int
 mono_btls_x509_lookup_add_dir (MonoBtlsX509Lookup *lookup, const char *dir, MonoBtlsX509FileType type)
 {
        return X509_LOOKUP_add_dir (lookup->lookup, dir, type);
 }
 
-MonoBtlsX509Lookup *
+MONO_API MonoBtlsX509Lookup *
 mono_btls_x509_lookup_up_ref (MonoBtlsX509Lookup *lookup)
 {
        CRYPTO_refcount_inc (&lookup->references);
        return lookup;
 }
 
-int
+MONO_API int
 mono_btls_x509_lookup_free (MonoBtlsX509Lookup *lookup)
 {
        if (!CRYPTO_refcount_dec_and_test_zero (&lookup->references))
@@ -101,31 +103,31 @@ mono_btls_x509_lookup_free (MonoBtlsX509Lookup *lookup)
        return 1;
 }
 
-int
+MONO_API int
 mono_btls_x509_lookup_init (MonoBtlsX509Lookup *lookup)
 {
        return X509_LOOKUP_init (lookup->lookup);
 }
 
-int
+MONO_API int
 mono_btls_x509_lookup_shutdown (MonoBtlsX509Lookup *lookup)
 {
        return X509_LOOKUP_shutdown (lookup->lookup);
 }
 
-MonoBtlsX509LookupType
+MONO_API MonoBtlsX509LookupType
 mono_btls_x509_lookup_get_type (MonoBtlsX509Lookup *lookup)
 {
        return lookup->type;
 }
 
-X509_LOOKUP *
+MONO_API X509_LOOKUP *
 mono_btls_x509_lookup_peek_lookup (MonoBtlsX509Lookup *lookup)
 {
        return lookup->lookup;
 }
 
-X509 *
+MONO_API X509 *
 mono_btls_x509_lookup_by_subject (MonoBtlsX509Lookup *lookup, MonoBtlsX509Name *name)
 {
        X509_OBJECT obj;
@@ -142,7 +144,7 @@ mono_btls_x509_lookup_by_subject (MonoBtlsX509Lookup *lookup, MonoBtlsX509Name *
        return x509;
 }
 
-X509 *
+MONO_API X509 *
 mono_btls_x509_lookup_by_fingerprint (MonoBtlsX509Lookup *lookup, unsigned char *bytes, int len)
 {
        X509_OBJECT obj;