From d1f47bd292f36094480caa49ada36b99a69c59b0 Mon Sep 17 00:00:00 2001 From: beck <> Date: Sun, 29 Jan 2017 17:49:23 +0000 Subject: Send the function codes from the error functions to the bit bucket, as was done earlier in libssl. Thanks inoguchi@ for noticing libssl had more reacharounds into this. ok jsing@ inoguchi@ --- src/lib/libcrypto/dso/dso_dlfcn.c | 40 +++++++++++----------- src/lib/libcrypto/dso/dso_err.c | 52 ++-------------------------- src/lib/libcrypto/dso/dso_lib.c | 71 +++++++++++++++++++-------------------- 3 files changed, 55 insertions(+), 108 deletions(-) (limited to 'src/lib/libcrypto/dso') diff --git a/src/lib/libcrypto/dso/dso_dlfcn.c b/src/lib/libcrypto/dso/dso_dlfcn.c index f22e641bab..95afd26b82 100644 --- a/src/lib/libcrypto/dso/dso_dlfcn.c +++ b/src/lib/libcrypto/dso/dso_dlfcn.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dso_dlfcn.c,v 1.28 2015/02/07 13:19:15 doug Exp $ */ +/* $OpenBSD: dso_dlfcn.c,v 1.29 2017/01/29 17:49:23 beck Exp $ */ /* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL * project 2000. */ @@ -119,7 +119,7 @@ dlfcn_load(DSO *dso) int flags = RTLD_LAZY; if (filename == NULL) { - DSOerr(DSO_F_DLFCN_LOAD, DSO_R_NO_FILENAME); + DSOerror(DSO_R_NO_FILENAME); goto err; } @@ -127,13 +127,13 @@ dlfcn_load(DSO *dso) flags |= RTLD_GLOBAL; ptr = dlopen(filename, flags); if (ptr == NULL) { - DSOerr(DSO_F_DLFCN_LOAD, DSO_R_LOAD_FAILED); + DSOerror(DSO_R_LOAD_FAILED); ERR_asprintf_error_data("filename(%s): %s", filename, dlerror()); goto err; } if (!sk_void_push(dso->meth_data, (char *)ptr)) { - DSOerr(DSO_F_DLFCN_LOAD, DSO_R_STACK_ERROR); + DSOerror(DSO_R_STACK_ERROR); goto err; } /* Success */ @@ -153,14 +153,14 @@ dlfcn_unload(DSO *dso) { void *ptr; if (dso == NULL) { - DSOerr(DSO_F_DLFCN_UNLOAD, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (0); } if (sk_void_num(dso->meth_data) < 1) return (1); ptr = sk_void_pop(dso->meth_data); if (ptr == NULL) { - DSOerr(DSO_F_DLFCN_UNLOAD, DSO_R_NULL_HANDLE); + DSOerror(DSO_R_NULL_HANDLE); /* Should push the value back onto the stack in * case of a retry. */ sk_void_push(dso->meth_data, ptr); @@ -177,21 +177,21 @@ dlfcn_bind_var(DSO *dso, const char *symname) void *ptr, *sym; if ((dso == NULL) || (symname == NULL)) { - DSOerr(DSO_F_DLFCN_BIND_VAR, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } if (sk_void_num(dso->meth_data) < 1) { - DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_STACK_ERROR); + DSOerror(DSO_R_STACK_ERROR); return (NULL); } ptr = sk_void_value(dso->meth_data, sk_void_num(dso->meth_data) - 1); if (ptr == NULL) { - DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_NULL_HANDLE); + DSOerror(DSO_R_NULL_HANDLE); return (NULL); } sym = dlsym(ptr, symname); if (sym == NULL) { - DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_SYM_FAILURE); + DSOerror(DSO_R_SYM_FAILURE); ERR_asprintf_error_data("symname(%s): %s", symname, dlerror()); return (NULL); } @@ -208,21 +208,21 @@ dlfcn_bind_func(DSO *dso, const char *symname) } u; if ((dso == NULL) || (symname == NULL)) { - DSOerr(DSO_F_DLFCN_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } if (sk_void_num(dso->meth_data) < 1) { - DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_STACK_ERROR); + DSOerror(DSO_R_STACK_ERROR); return (NULL); } ptr = sk_void_value(dso->meth_data, sk_void_num(dso->meth_data) - 1); if (ptr == NULL) { - DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_NULL_HANDLE); + DSOerror(DSO_R_NULL_HANDLE); return (NULL); } u.dlret = dlsym(ptr, symname); if (u.dlret == NULL) { - DSOerr(DSO_F_DLFCN_BIND_FUNC, DSO_R_SYM_FAILURE); + DSOerror(DSO_R_SYM_FAILURE); ERR_asprintf_error_data("symname(%s): %s", symname, dlerror()); return (NULL); } @@ -235,8 +235,7 @@ dlfcn_merger(DSO *dso, const char *filespec1, const char *filespec2) char *merged; if (!filespec1 && !filespec2) { - DSOerr(DSO_F_DLFCN_MERGER, - ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } /* If the first file specification is a rooted path, it rules. @@ -244,7 +243,7 @@ dlfcn_merger(DSO *dso, const char *filespec1, const char *filespec2) if (!filespec2 || (filespec1 != NULL && filespec1[0] == '/')) { merged = strdup(filespec1); if (!merged) { - DSOerr(DSO_F_DLFCN_MERGER, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); return (NULL); } } @@ -252,7 +251,7 @@ dlfcn_merger(DSO *dso, const char *filespec1, const char *filespec2) else if (!filespec1) { merged = strdup(filespec2); if (!merged) { - DSOerr(DSO_F_DLFCN_MERGER, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); return (NULL); } } else @@ -273,7 +272,7 @@ dlfcn_merger(DSO *dso, const char *filespec1, const char *filespec2) } merged = malloc(len + 2); if (!merged) { - DSOerr(DSO_F_DLFCN_MERGER, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); return (NULL); } strlcpy(merged, filespec2, len + 2); @@ -306,8 +305,7 @@ dlfcn_name_converter(DSO *dso, const char *filename) } if (translated == NULL) - DSOerr(DSO_F_DLFCN_NAME_CONVERTER, - DSO_R_NAME_TRANSLATION_FAILED); + DSOerror(DSO_R_NAME_TRANSLATION_FAILED); return (translated); } diff --git a/src/lib/libcrypto/dso/dso_err.c b/src/lib/libcrypto/dso/dso_err.c index b8514a4aef..be6375a3a7 100644 --- a/src/lib/libcrypto/dso/dso_err.c +++ b/src/lib/libcrypto/dso/dso_err.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dso_err.c,v 1.8 2014/07/10 22:45:56 jsing Exp $ */ +/* $OpenBSD: dso_err.c,v 1.9 2017/01/29 17:49:23 beck Exp $ */ /* ==================================================================== * Copyright (c) 1999-2006 The OpenSSL Project. All rights reserved. * @@ -72,55 +72,7 @@ #define ERR_REASON(reason) ERR_PACK(ERR_LIB_DSO,0,reason) static ERR_STRING_DATA DSO_str_functs[]= { - {ERR_FUNC(DSO_F_BEOS_BIND_FUNC), "BEOS_BIND_FUNC"}, - {ERR_FUNC(DSO_F_BEOS_BIND_VAR), "BEOS_BIND_VAR"}, - {ERR_FUNC(DSO_F_BEOS_LOAD), "BEOS_LOAD"}, - {ERR_FUNC(DSO_F_BEOS_NAME_CONVERTER), "BEOS_NAME_CONVERTER"}, - {ERR_FUNC(DSO_F_BEOS_UNLOAD), "BEOS_UNLOAD"}, - {ERR_FUNC(DSO_F_DLFCN_BIND_FUNC), "DLFCN_BIND_FUNC"}, - {ERR_FUNC(DSO_F_DLFCN_BIND_VAR), "DLFCN_BIND_VAR"}, - {ERR_FUNC(DSO_F_DLFCN_LOAD), "DLFCN_LOAD"}, - {ERR_FUNC(DSO_F_DLFCN_MERGER), "DLFCN_MERGER"}, - {ERR_FUNC(DSO_F_DLFCN_NAME_CONVERTER), "DLFCN_NAME_CONVERTER"}, - {ERR_FUNC(DSO_F_DLFCN_UNLOAD), "DLFCN_UNLOAD"}, - {ERR_FUNC(DSO_F_DL_BIND_FUNC), "DL_BIND_FUNC"}, - {ERR_FUNC(DSO_F_DL_BIND_VAR), "DL_BIND_VAR"}, - {ERR_FUNC(DSO_F_DL_LOAD), "DL_LOAD"}, - {ERR_FUNC(DSO_F_DL_MERGER), "DL_MERGER"}, - {ERR_FUNC(DSO_F_DL_NAME_CONVERTER), "DL_NAME_CONVERTER"}, - {ERR_FUNC(DSO_F_DL_UNLOAD), "DL_UNLOAD"}, - {ERR_FUNC(DSO_F_DSO_BIND_FUNC), "DSO_bind_func"}, - {ERR_FUNC(DSO_F_DSO_BIND_VAR), "DSO_bind_var"}, - {ERR_FUNC(DSO_F_DSO_CONVERT_FILENAME), "DSO_convert_filename"}, - {ERR_FUNC(DSO_F_DSO_CTRL), "DSO_ctrl"}, - {ERR_FUNC(DSO_F_DSO_FREE), "DSO_free"}, - {ERR_FUNC(DSO_F_DSO_GET_FILENAME), "DSO_get_filename"}, - {ERR_FUNC(DSO_F_DSO_GET_LOADED_FILENAME), "DSO_get_loaded_filename"}, - {ERR_FUNC(DSO_F_DSO_GLOBAL_LOOKUP), "DSO_global_lookup"}, - {ERR_FUNC(DSO_F_DSO_LOAD), "DSO_load"}, - {ERR_FUNC(DSO_F_DSO_MERGE), "DSO_merge"}, - {ERR_FUNC(DSO_F_DSO_NEW_METHOD), "DSO_new_method"}, - {ERR_FUNC(DSO_F_DSO_PATHBYADDR), "DSO_pathbyaddr"}, - {ERR_FUNC(DSO_F_DSO_SET_FILENAME), "DSO_set_filename"}, - {ERR_FUNC(DSO_F_DSO_SET_NAME_CONVERTER), "DSO_set_name_converter"}, - {ERR_FUNC(DSO_F_DSO_UP_REF), "DSO_up_ref"}, - {ERR_FUNC(DSO_F_GLOBAL_LOOKUP_FUNC), "GLOBAL_LOOKUP_FUNC"}, - {ERR_FUNC(DSO_F_PATHBYADDR), "PATHBYADDR"}, - {ERR_FUNC(DSO_F_VMS_BIND_SYM), "VMS_BIND_SYM"}, - {ERR_FUNC(DSO_F_VMS_LOAD), "VMS_LOAD"}, - {ERR_FUNC(DSO_F_VMS_MERGER), "VMS_MERGER"}, - {ERR_FUNC(DSO_F_VMS_UNLOAD), "VMS_UNLOAD"}, - {ERR_FUNC(DSO_F_WIN32_BIND_FUNC), "WIN32_BIND_FUNC"}, - {ERR_FUNC(DSO_F_WIN32_BIND_VAR), "WIN32_BIND_VAR"}, - {ERR_FUNC(DSO_F_WIN32_GLOBALLOOKUP), "WIN32_GLOBALLOOKUP"}, - {ERR_FUNC(DSO_F_WIN32_GLOBALLOOKUP_FUNC), "WIN32_GLOBALLOOKUP_FUNC"}, - {ERR_FUNC(DSO_F_WIN32_JOINER), "WIN32_JOINER"}, - {ERR_FUNC(DSO_F_WIN32_LOAD), "WIN32_LOAD"}, - {ERR_FUNC(DSO_F_WIN32_MERGER), "WIN32_MERGER"}, - {ERR_FUNC(DSO_F_WIN32_NAME_CONVERTER), "WIN32_NAME_CONVERTER"}, - {ERR_FUNC(DSO_F_WIN32_PATHBYADDR), "WIN32_PATHBYADDR"}, - {ERR_FUNC(DSO_F_WIN32_SPLITTER), "WIN32_SPLITTER"}, - {ERR_FUNC(DSO_F_WIN32_UNLOAD), "WIN32_UNLOAD"}, + {ERR_FUNC(0xfff), "CRYPTO_internal"}, {0, NULL} }; diff --git a/src/lib/libcrypto/dso/dso_lib.c b/src/lib/libcrypto/dso/dso_lib.c index 3002e4d99c..7902fbcc6e 100644 --- a/src/lib/libcrypto/dso/dso_lib.c +++ b/src/lib/libcrypto/dso/dso_lib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dso_lib.c,v 1.18 2014/07/11 08:44:48 jsing Exp $ */ +/* $OpenBSD: dso_lib.c,v 1.19 2017/01/29 17:49:23 beck Exp $ */ /* Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL * project 2000. */ @@ -111,13 +111,13 @@ DSO_new_method(DSO_METHOD *meth) default_DSO_meth = DSO_METHOD_openssl(); ret = calloc(1, sizeof(DSO)); if (ret == NULL) { - DSOerr(DSO_F_DSO_NEW_METHOD, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); return (NULL); } ret->meth_data = sk_void_new_null(); if (ret->meth_data == NULL) { /* sk_new doesn't generate any errors so we do */ - DSOerr(DSO_F_DSO_NEW_METHOD, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); free(ret); return (NULL); } @@ -139,7 +139,7 @@ DSO_free(DSO *dso) int i; if (dso == NULL) { - DSOerr(DSO_F_DSO_FREE, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (0); } @@ -148,12 +148,12 @@ DSO_free(DSO *dso) return (1); if ((dso->meth->dso_unload != NULL) && !dso->meth->dso_unload(dso)) { - DSOerr(DSO_F_DSO_FREE, DSO_R_UNLOAD_FAILED); + DSOerror(DSO_R_UNLOAD_FAILED); return (0); } if ((dso->meth->finish != NULL) && !dso->meth->finish(dso)) { - DSOerr(DSO_F_DSO_FREE, DSO_R_FINISH_FAILED); + DSOerror(DSO_R_FINISH_FAILED); return (0); } @@ -175,7 +175,7 @@ int DSO_up_ref(DSO *dso) { if (dso == NULL) { - DSOerr(DSO_F_DSO_UP_REF, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (0); } @@ -192,40 +192,40 @@ DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags) if (dso == NULL) { ret = DSO_new_method(meth); if (ret == NULL) { - DSOerr(DSO_F_DSO_LOAD, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); goto err; } allocated = 1; /* Pass the provided flags to the new DSO object */ if (DSO_ctrl(ret, DSO_CTRL_SET_FLAGS, flags, NULL) < 0) { - DSOerr(DSO_F_DSO_LOAD, DSO_R_CTRL_FAILED); + DSOerror(DSO_R_CTRL_FAILED); goto err; } } else ret = dso; /* Don't load if we're currently already loaded */ if (ret->filename != NULL) { - DSOerr(DSO_F_DSO_LOAD, DSO_R_DSO_ALREADY_LOADED); + DSOerror(DSO_R_DSO_ALREADY_LOADED); goto err; } /* filename can only be NULL if we were passed a dso that already has * one set. */ if (filename != NULL) if (!DSO_set_filename(ret, filename)) { - DSOerr(DSO_F_DSO_LOAD, DSO_R_SET_FILENAME_FAILED); + DSOerror(DSO_R_SET_FILENAME_FAILED); goto err; } filename = ret->filename; if (filename == NULL) { - DSOerr(DSO_F_DSO_LOAD, DSO_R_NO_FILENAME); + DSOerror(DSO_R_NO_FILENAME); goto err; } if (ret->meth->dso_load == NULL) { - DSOerr(DSO_F_DSO_LOAD, DSO_R_UNSUPPORTED); + DSOerror(DSO_R_UNSUPPORTED); goto err; } if (!ret->meth->dso_load(ret)) { - DSOerr(DSO_F_DSO_LOAD, DSO_R_LOAD_FAILED); + DSOerror(DSO_R_LOAD_FAILED); goto err; } /* Load succeeded */ @@ -243,15 +243,15 @@ DSO_bind_var(DSO *dso, const char *symname) void *ret = NULL; if ((dso == NULL) || (symname == NULL)) { - DSOerr(DSO_F_DSO_BIND_VAR, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } if (dso->meth->dso_bind_var == NULL) { - DSOerr(DSO_F_DSO_BIND_VAR, DSO_R_UNSUPPORTED); + DSOerror(DSO_R_UNSUPPORTED); return (NULL); } if ((ret = dso->meth->dso_bind_var(dso, symname)) == NULL) { - DSOerr(DSO_F_DSO_BIND_VAR, DSO_R_SYM_FAILURE); + DSOerror(DSO_R_SYM_FAILURE); return (NULL); } /* Success */ @@ -264,15 +264,15 @@ DSO_bind_func(DSO *dso, const char *symname) DSO_FUNC_TYPE ret = NULL; if ((dso == NULL) || (symname == NULL)) { - DSOerr(DSO_F_DSO_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } if (dso->meth->dso_bind_func == NULL) { - DSOerr(DSO_F_DSO_BIND_FUNC, DSO_R_UNSUPPORTED); + DSOerror(DSO_R_UNSUPPORTED); return (NULL); } if ((ret = dso->meth->dso_bind_func(dso, symname)) == NULL) { - DSOerr(DSO_F_DSO_BIND_FUNC, DSO_R_SYM_FAILURE); + DSOerror(DSO_R_SYM_FAILURE); return (NULL); } /* Success */ @@ -291,7 +291,7 @@ long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg) { if (dso == NULL) { - DSOerr(DSO_F_DSO_CTRL, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (-1); } /* We should intercept certain generic commands and only pass control @@ -310,7 +310,7 @@ DSO_ctrl(DSO *dso, int cmd, long larg, void *parg) break; } if ((dso->meth == NULL) || (dso->meth->dso_ctrl == NULL)) { - DSOerr(DSO_F_DSO_CTRL, DSO_R_UNSUPPORTED); + DSOerror(DSO_R_UNSUPPORTED); return (-1); } return (dso->meth->dso_ctrl(dso, cmd, larg, parg)); @@ -321,8 +321,7 @@ DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, DSO_NAME_CONVERTER_FUNC *oldcb) { if (dso == NULL) { - DSOerr(DSO_F_DSO_SET_NAME_CONVERTER, - ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (0); } if (oldcb) @@ -335,7 +334,7 @@ const char * DSO_get_filename(DSO *dso) { if (dso == NULL) { - DSOerr(DSO_F_DSO_GET_FILENAME, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } return (dso->filename); @@ -347,17 +346,17 @@ DSO_set_filename(DSO *dso, const char *filename) char *copied; if ((dso == NULL) || (filename == NULL)) { - DSOerr(DSO_F_DSO_SET_FILENAME, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (0); } if (dso->loaded_filename) { - DSOerr(DSO_F_DSO_SET_FILENAME, DSO_R_DSO_ALREADY_LOADED); + DSOerror(DSO_R_DSO_ALREADY_LOADED); return (0); } /* We'll duplicate filename */ copied = strdup(filename); if (copied == NULL) { - DSOerr(DSO_F_DSO_SET_FILENAME, ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); return (0); } free(dso->filename); @@ -371,7 +370,7 @@ DSO_merge(DSO *dso, const char *filespec1, const char *filespec2) char *result = NULL; if (dso == NULL || filespec1 == NULL) { - DSOerr(DSO_F_DSO_MERGE, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } if ((dso->flags & DSO_FLAG_NO_NAME_TRANSLATION) == 0) { @@ -390,13 +389,13 @@ DSO_convert_filename(DSO *dso, const char *filename) char *result = NULL; if (dso == NULL) { - DSOerr(DSO_F_DSO_CONVERT_FILENAME, ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } if (filename == NULL) filename = dso->filename; if (filename == NULL) { - DSOerr(DSO_F_DSO_CONVERT_FILENAME, DSO_R_NO_FILENAME); + DSOerror(DSO_R_NO_FILENAME); return (NULL); } if ((dso->flags & DSO_FLAG_NO_NAME_TRANSLATION) == 0) { @@ -408,8 +407,7 @@ DSO_convert_filename(DSO *dso, const char *filename) if (result == NULL) { result = strdup(filename); if (result == NULL) { - DSOerr(DSO_F_DSO_CONVERT_FILENAME, - ERR_R_MALLOC_FAILURE); + DSOerror(ERR_R_MALLOC_FAILURE); return (NULL); } } @@ -420,8 +418,7 @@ const char * DSO_get_loaded_filename(DSO *dso) { if (dso == NULL) { - DSOerr(DSO_F_DSO_GET_LOADED_FILENAME, - ERR_R_PASSED_NULL_PARAMETER); + DSOerror(ERR_R_PASSED_NULL_PARAMETER); return (NULL); } return (dso->loaded_filename); @@ -434,7 +431,7 @@ DSO_pathbyaddr(void *addr, char *path, int sz) if (meth == NULL) meth = DSO_METHOD_openssl(); if (meth->pathbyaddr == NULL) { - DSOerr(DSO_F_DSO_PATHBYADDR, DSO_R_UNSUPPORTED); + DSOerror(DSO_R_UNSUPPORTED); return -1; } return (*meth->pathbyaddr)(addr, path, sz); @@ -447,7 +444,7 @@ DSO_global_lookup(const char *name) if (meth == NULL) meth = DSO_METHOD_openssl(); if (meth->globallookup == NULL) { - DSOerr(DSO_F_DSO_GLOBAL_LOOKUP, DSO_R_UNSUPPORTED); + DSOerror(DSO_R_UNSUPPORTED); return NULL; } return (*meth->globallookup)(name); -- cgit v1.2.3-55-g6feb