Update evp_test to make sure passing partial block to "Update" is ok
[openssl.git] / test / shlibloadtest.c
index be1e78449e3d55231ffd7c0ba81ca51dddc839ba..6f220ba5302795cdc1b1af87b7bcf9882dd76dab 100644 (file)
@@ -12,6 +12,9 @@
 #include <stdlib.h>
 #include <openssl/opensslv.h>
 
+/* The test is only currently implemented for DSO_DLFCN and DSO_WIN32 */
+#if defined(DSO_DLFCN) || defined(DSO_WIN32)
+
 #define SSL_CTX_NEW "SSL_CTX_new"
 #define SSL_CTX_FREE "SSL_CTX_free"
 #define TLS_METHOD "TLS_method"
@@ -28,13 +31,12 @@ typedef void (*SSL_CTX_free_t)(SSL_CTX *);
 typedef unsigned long (*ERR_get_error_t)(void);
 typedef unsigned long (*OpenSSL_version_num_t)(void);
 
-TLS_method_t TLS_method;
-SSL_CTX_new_t SSL_CTX_new;
-SSL_CTX_free_t SSL_CTX_free;
-
-ERR_get_error_t ERR_get_error;
-OpenSSL_version_num_t OpenSSL_version_num;
+static TLS_method_t TLS_method;
+static SSL_CTX_new_t SSL_CTX_new;
+static SSL_CTX_free_t SSL_CTX_free;
 
+static ERR_get_error_t ERR_get_error;
+static OpenSSL_version_num_t OpenSSL_version_num;
 
 #ifdef DSO_DLFCN
 
@@ -42,23 +44,11 @@ OpenSSL_version_num_t OpenSSL_version_num;
 
 typedef void * SHLIB;
 typedef void * SHLIB_SYM;
+# define SHLIB_INIT NULL
 
-# define SHARED_LIBRARY_SUFFIX ".so"
-
-static int shlib_load(char *filename, SHLIB *lib)
+static int shlib_load(const char *filename, SHLIB *lib)
 {
-    char *tmpfile;
-    size_t filenamelen = strlen(filename);
-
-    /* Total length = base filename len + suffix len + 1 for NULL terminator */
-    tmpfile = malloc(filenamelen + sizeof(SHARED_LIBRARY_SUFFIX) + 1);
-    if (tmpfile == NULL)
-        return 0;
-    strcpy(tmpfile, filename);
-    strcpy(tmpfile + filenamelen, SHARED_LIBRARY_SUFFIX);
-
-    *lib = dlopen(tmpfile, RTLD_GLOBAL | RTLD_LAZY);
-    free(tmpfile);
+    *lib = dlopen(filename, RTLD_GLOBAL | RTLD_LAZY);
 
     if (*lib == NULL)
         return 0;
@@ -87,8 +77,9 @@ static int shlib_close(SHLIB lib)
 
 typedef HINSTANCE SHLIB;
 typedef void * SHLIB_SYM;
+# define SHLIB_INIT 0
 
-static int shlib_load(char *filename, SHLIB *lib)
+static int shlib_load(const char *filename, SHLIB *lib)
 {
     *lib = LoadLibraryA(filename);
     if (*lib == NULL)
@@ -114,9 +105,6 @@ static int shlib_close(SHLIB lib)
 
 #endif
 
-/* The test is only currently implemented for DSO_DLFCN and DSO_WIN32 */
-#if defined(DSO_DLFCN) || defined(DSO_WIN32)
-
 # define CRYPTO_FIRST_OPT    "-crypto_first"
 # define SSL_FIRST_OPT       "-ssl_first"
 # define JUST_CRYPTO_OPT     "-just_crypto"
@@ -129,7 +117,7 @@ enum test_types_en {
 
 int main(int argc, char **argv)
 {
-    SHLIB ssllib, cryptolib;
+    SHLIB ssllib = SHLIB_INIT, cryptolib = SHLIB_INIT;
     SSL_CTX *ctx;
     union {
         void (*func) (void);