loader.c: Fix possible SEGV when a module fails to register

When a module fails to register itself (usually a coding error
in the module), dlerror() can return NULL.  We weren't checking
for that in load_dlopen() before trying to strdup the error message
so a SEGV was thrown.  dlerror() is now surrounded with an S_OR
so we don't SEGV.

Change-Id: Ie0fb9316f08a321434f3f85aecf3c7d2ede8b956
16.6
George Joseph 6 years ago
parent 50453846b6
commit 05cf9c9912

@ -1087,7 +1087,7 @@ static struct ast_module *load_dlopen(const char *resource_in, const char *so_ex
if (resource_being_loaded) {
struct ast_str *list;
int c = 0;
const char *dlerror_msg = ast_strdupa(dlerror());
const char *dlerror_msg = ast_strdupa(S_OR(dlerror(), ""));
resource_being_loaded = NULL;
if (mod->lib) {

Loading…
Cancel
Save