From 964d59c56e245b9c1cf53a73af87b2834c2c5ad8 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 21 Apr 2010 09:53:26 -0500 Subject: [PATCH] proper checking for dlerror on failed dso load --- src/switch_dso.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/switch_dso.c b/src/switch_dso.c index 6fc5c7b86c..152c280d5d 100644 --- a/src/switch_dso.c +++ b/src/switch_dso.c @@ -127,7 +127,16 @@ void *switch_dso_data_sym(switch_dso_lib_t lib, const char *sym, char **err) { void *addr = dlsym(lib, sym); if (!addr) { - *err = strdup(dlerror()); + char *err_str = NULL; + dlerror(); + + if (!(addr = dlsym(lib, sym))) { + err_str = dlerror(); + } + + if (err_str) { + *err = strdup(err_str); + } } return addr; }