From d2eb65f71e9347c15d469579bbb20c47501d924b Mon Sep 17 00:00:00 2001 From: George Joseph Date: Sun, 6 Mar 2016 13:38:41 -0700 Subject: res_pjsip: Strip spaces from items parsed from comma-separated lists Configurations like "aors = a, b, c" were either ignoring everything after "a" or trying to look up " b". Same for mailboxes, ciphers, contacts and a few others. To fix, all the strsep(©, ",") calls have been wrapped in ast_strip. To facilitate this, ast_strip, ast_skip_blanks and ast_skip_nonblanks were updated to handle null pointers. In some cases, an ast_strlen_zero() test was added to skip consecutive commas. There was also an attempt to ast_free an ast_strdupa'd string in ast_sip_for_each_aor which was causing a SEGV. I removed it. Although this issue was reported for realtime, the issue was in the res_pjsip modules so all config mechanisms were affected. ASTERISK-25829 #close Reported-by: Mateusz Kowalski Change-Id: I0b22a2cf22a7c1c50d4ecacbfa540155bec0e7a2 --- res/res_pjsip/config_transport.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'res/res_pjsip/config_transport.c') diff --git a/res/res_pjsip/config_transport.c b/res/res_pjsip/config_transport.c index 61a979c88..db579bf2f 100644 --- a/res/res_pjsip/config_transport.c +++ b/res/res_pjsip/config_transport.c @@ -985,8 +985,7 @@ static int transport_tls_cipher_handler(const struct aco_option *opt, struct ast } parse = ast_strdupa(S_OR(var->value, "")); - while ((name = strsep(&parse, ","))) { - name = ast_strip(name); + while ((name = ast_strip(strsep(&parse, ",")))) { if (ast_strlen_zero(name)) { continue; } -- cgit v1.2.3