For CFB and OFB modes, always create the encryption key.
[oweals/openssl.git] / crypto / dso / dso_dlfcn.c
index 681e9782ad14d822bb69d7856efd47d7cac994f0..906b4703de71c4f42a210f8706b17a86118cfb83 100644 (file)
@@ -114,7 +114,7 @@ DSO_METHOD *DSO_METHOD_dlfcn(void)
  * as we don't have autoconf yet, I'm implementing a hack that could
  * be hacked further relatively easily to deal with cases as we find
  * them. Initially this is to cope with OpenBSD. */
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
 #      ifdef DL_LAZY
 #              define DLOPEN_FLAG DL_LAZY
 #      else
@@ -147,7 +147,7 @@ static int dlfcn_load(DSO *dso)
        if(ptr == NULL)
                {
                DSOerr(DSO_F_DLFCN_LOAD,DSO_R_LOAD_FAILED);
-               ERR_add_error_data(3, "filename(", filename, ")");
+               ERR_add_error_data(4, "filename(", filename, "): ", dlerror());
                goto err;
                }
        if(!sk_push(dso->meth_data, (char *)ptr))
@@ -215,7 +215,7 @@ static void *dlfcn_bind_var(DSO *dso, const char *symname)
        if(sym == NULL)
                {
                DSOerr(DSO_F_DLFCN_BIND_VAR,DSO_R_SYM_FAILURE);
-               ERR_add_error_data(3, "symname(", symname, ")");
+               ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
                return(NULL);
                }
        return(sym);
@@ -246,7 +246,7 @@ static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
        if(sym == NULL)
                {
                DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_SYM_FAILURE);
-               ERR_add_error_data(3, "symname(", symname, ")");
+               ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
                return(NULL);
                }
        return(sym);