[sr-dev] git:master: tm: safety check for user_agent_header value

Daniel-Constantin Mierla miconda at gmail.com
Fri Oct 10 12:15:44 CEST 2014


Module: sip-router
Branch: master
Commit: cea9b91dacdb23b22fc1a7dd8454994eab9efa6e
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=cea9b91dacdb23b22fc1a7dd8454994eab9efa6e

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Fri Oct 10 12:11:52 2014 +0200

tm: safety check for user_agent_header value

- don't add the header in local generated requests if the value is empty

---

 modules/tm/t_msgbuilder.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/tm/t_msgbuilder.c b/modules/tm/t_msgbuilder.c
index fae0cdf..bcf96c5 100644
--- a/modules/tm/t_msgbuilder.c
+++ b/modules/tm/t_msgbuilder.c
@@ -1578,9 +1578,9 @@ char* build_uac_req(str* method, str* headers, str* body, dlg_t* dialog, int bra
 	*len += CSEQ_LEN + cseq.len + 1 + method->len + CRLF_LEN;                                    /* CSeq */
 	*len += calculate_routeset_length(dialog);                                                   /* Route set */
 	*len += maxfwd_len;                                                                          /* Max-forwards */	
-	*len += CONTENT_LENGTH_LEN + content_length.len + CRLF_LEN; /* Content-
-																	 Length */
-	*len += (server_signature ? (user_agent_hdr.len + CRLF_LEN) : 0);	                         /* Signature */
+	*len += CONTENT_LENGTH_LEN + content_length.len + CRLF_LEN; /* Content-Length */
+	*len += ((server_signature && user_agent_hdr.len>0)
+							? (user_agent_hdr.len + CRLF_LEN) : 0);	                         /* Signature */
 	*len += (headers ? headers->len : 0);                                                        /* Additional headers */
 	*len += (body ? body->len : 0);                                                              /* Message body */
 	*len += CRLF_LEN;                                                                            /* End of Header */
@@ -1610,13 +1610,13 @@ char* build_uac_req(str* method, str* headers, str* body, dlg_t* dialog, int bra
 	memapp(w, CRLF, CRLF_LEN);
 	
 	     /* Server signature */
-	if (server_signature) {
+	if (server_signature && user_agent_hdr.len>0) {
 		memapp(w, user_agent_hdr.s, user_agent_hdr.len);
 		memapp(w, CRLF, CRLF_LEN);
 	}
 	if (headers) memapp(w, headers->s, headers->len);
 	memapp(w, CRLF, CRLF_LEN);
-     	if (body) memapp(w, body->s, body->len);
+	if (body) memapp(w, body->s, body->len);
 
 #ifdef EXTRA_DEBUG
 	assert(w-buf == *len);




More information about the sr-dev mailing list