#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"
static ERR_get_error_t ERR_get_error;
static OpenSSL_version_num_t OpenSSL_version_num;
-
#ifdef DSO_DLFCN
# include <dlfcn.h>
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;
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)
#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"