diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c index db7dde71ad..8ac3b927cf 100644 --- a/res/res_musiconhold.c +++ b/res/res_musiconhold.c @@ -1613,18 +1613,21 @@ static struct ast_variable *load_realtime_musiconhold(const char *name) char *category = NULL; size_t entry_count = 0; - while ((category = ast_category_browse(entries, category))) { - const char *entry = ast_variable_retrieve(entries, category, "entry"); - - if (entry) { - struct ast_variable *dup = ast_variable_new("entry", entry, ""); - if (dup) { - entry_count++; - ast_variable_list_append(&var, dup); + /* entries is NULL if there are no results */ + if (entries) { + while ((category = ast_category_browse(entries, category))) { + const char *entry = ast_variable_retrieve(entries, category, "entry"); + + if (entry) { + struct ast_variable *dup = ast_variable_new("entry", entry, ""); + if (dup) { + entry_count++; + ast_variable_list_append(&var, dup); + } } } + ast_config_destroy(entries); } - ast_config_destroy(entries); if (entry_count == 0) { /* Behave as though this class doesn't exist */