diff options
author | George Joseph <gjoseph@digium.com> | 2016-08-11 11:18:15 -0600 |
---|---|---|
committer | George Joseph <gjoseph@digium.com> | 2016-08-11 11:32:43 -0600 |
commit | 143df33110e61328a3c57cbcbeb63dd949f5680e (patch) | |
tree | 0c361595131e68b92fd2ddee742148373b24a83c /res/res_pjsip | |
parent | 1a3cc843718a35eb69168304c54ec9e7caec6ffd (diff) |
res_pjsip: Fail global load if debug or default_from_user are empty
If debug was specified in the global configuration but left blank,
the logger would treat it as a wildcard and log all hosts. If
default_from_user was empty, a crash would result.
The global apply handler now checks for empty strings.
ASTERISK-26239 #close
ASTERISK-26238 #close
Change-Id: Ie75727f5cd5808845d92cc81f5713842fb203336
Diffstat (limited to 'res/res_pjsip')
-rw-r--r-- | res/res_pjsip/config_global.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/res/res_pjsip/config_global.c b/res/res_pjsip/config_global.c index 8a1b0d449..975c5eefe 100644 --- a/res/res_pjsip/config_global.c +++ b/res/res_pjsip/config_global.c @@ -118,6 +118,18 @@ static int global_apply(const struct ast_sorcery *sorcery, void *obj) struct global_config *cfg = obj; char max_forwards[10]; + if (ast_strlen_zero(cfg->debug)) { + ast_log(LOG_ERROR, + "Global option 'debug' can't be empty. Set it to a valid value or remove the entry to accept 'no' as the default\n"); + return -1; + } + + if (ast_strlen_zero(cfg->default_from_user)) { + ast_log(LOG_ERROR, + "Global option 'default_from_user' can't be empty. Set it to a valid value or remove the entry to accept 'asterisk' as the default\n"); + return -1; + } + snprintf(max_forwards, sizeof(max_forwards), "%u", cfg->max_forwards); ast_sip_add_global_request_header("Max-Forwards", max_forwards, 1); |