From: Richard Mudgett Date: Wed, 11 Mar 2015 15:22:01 +0000 (+0000) Subject: res_pjsip: Fixed invalid empty Server and User-Agent SIP headers. X-Git-Tag: 14.0.0-beta1~1196 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=185d2e082aad9962c7d94255158a49ca9b82536b;p=thirdparty%2Fasterisk.git res_pjsip: Fixed invalid empty Server and User-Agent SIP headers. Setting pjsip.conf useragent to an empty string results in an empty SIP header being sent. * Made not add an empty SIP header item to the global SIP headers list. Review: https://reviewboard.asterisk.org/r/4467/ ........ Merged revisions 432764 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432765 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/res/res_pjsip/pjsip_global_headers.c b/res/res_pjsip/pjsip_global_headers.c index 057b0c3d09..735008dcc8 100644 --- a/res/res_pjsip/pjsip_global_headers.c +++ b/res/res_pjsip/pjsip_global_headers.c @@ -121,18 +121,22 @@ static void remove_header(struct header_list *headers, const char *to_remove) static int add_header(struct header_list *headers, const char *name, const char *value, int replace) { - struct header *to_add; + struct header *to_add = NULL; - to_add = alloc_header(name, value); - if (!to_add) { - return -1; + if (!ast_strlen_zero(value)) { + to_add = alloc_header(name, value); + if (!to_add) { + return -1; + } } AST_RWLIST_WRLOCK(headers); if (replace) { remove_header(headers, name); } - AST_LIST_INSERT_TAIL(headers, to_add, next); + if (to_add) { + AST_LIST_INSERT_TAIL(headers, to_add, next); + } AST_RWLIST_UNLOCK(headers); return 0;