res_musiconhold: Don't crash when real-time doesn't return any entries

ASTERISK-29211 #close

Change-Id: Ifbf0a4f786ab2a52342f9d1a1db4c9907f069877
This commit is contained in:
Nathan Bruning 2020-12-11 00:06:56 +01:00 committed by Sean Bright
parent 5b4e71fa0a
commit 0774d9f9aa
1 changed files with 11 additions and 8 deletions

View File

@ -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");
/* 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);
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 */