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
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) {