app_directory: Handle a NULL mailbox without crashing
authorSean Bright <sean.bright@gmail.com>
Fri, 1 Sep 2017 14:51:06 +0000 (10:51 -0400)
committerSean Bright <sean.bright@gmail.com>
Fri, 1 Sep 2017 15:28:12 +0000 (10:28 -0500)
ASTERISK-27241 #close
Reported by: David Moore

Change-Id: Ibbbca85517b04c315406ebfe3b6f7e0763daedc6

apps/app_directory.c

index dd80c34..6866aa3 100644 (file)
@@ -509,6 +509,11 @@ static struct ast_config *realtime_directory(char *context)
                const char *mailbox = ast_variable_retrieve(rtdata, category, "mailbox");
                const char *ctx = ast_variable_retrieve(rtdata, category, "context");
 
+               if (ast_strlen_zero(mailbox)) {
+                       ast_debug(3, "Skipping result with missing or empty mailbox\n");
+                       continue;
+               }
+
                fullname = ast_variable_retrieve(rtdata, category, "fullname");
                hidefromdir = ast_variable_retrieve(rtdata, category, "hidefromdir");
                if (ast_true(hidefromdir)) {
@@ -529,7 +534,7 @@ static struct ast_config *realtime_directory(char *context)
 
                /* Does the context exist within the config file? If not, make one */
                if (!(cat = ast_category_get(cfg, ctx, NULL))) {
-                       if (!(cat = ast_category_new(ctx, "", 99999))) {
+                       if (!(cat = ast_category_new_dynamic(ctx))) {
                                ast_log(LOG_WARNING, "Out of memory\n");
                                ast_config_destroy(cfg);
                                if (rtdata) {