From 7a735d45e25a1101ef1c665996f2d5b16fe021f7 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean.bright@gmail.com>
Date: Thu, 16 Nov 2017 17:18:16 -0500
Subject: [PATCH] res_pjsip_transport_websocket: Give transport a meaningful
 description

We were not \0 terminating this string, so any attempt to print it would
in the best case show an empty string and in the worst case potentially
crash.

Change-Id: I63d96ef8f7516ac02a0f91e22dfa8acdc615042c
---
 res/res_pjsip_transport_websocket.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c
index b5b6a3e0ad..3ce90390cc 100644
--- a/res/res_pjsip_transport_websocket.c
+++ b/res/res_pjsip_transport_websocket.c
@@ -203,6 +203,10 @@ static int transport_create(void *data)
 	ast_debug(4, "Creating websocket transport for %s:%s\n",
 		newtransport->transport.type_name, ws_addr_str);
 
+	newtransport->transport.info = (char *) pj_pool_alloc(newtransport->transport.pool,
+		strlen(newtransport->transport.type_name) + strlen(ws_addr_str) + sizeof(" to "));
+	sprintf(newtransport->transport.info, "%s to %s", newtransport->transport.type_name, ws_addr_str);
+
 	pj_sockaddr_parse(pj_AF_UNSPEC(), 0, pj_cstr(&buf, ws_addr_str), &newtransport->transport.key.rem_addr);
 	if (newtransport->transport.key.rem_addr.addr.sa_family == pj_AF_INET6()) {
 		newtransport->transport.key.type = transport_type_wss_ipv6;
@@ -218,8 +222,6 @@ static int transport_create(void *data)
 	newtransport->transport.local_name.port = ast_sockaddr_port(ast_websocket_local_address(newtransport->ws_session));
 
 	newtransport->transport.flag = pjsip_transport_get_flag_from_type((pjsip_transport_type_e)newtransport->transport.key.type);
-	newtransport->transport.info = (char *)pj_pool_alloc(newtransport->transport.pool, 64);
-
 	newtransport->transport.dir = PJSIP_TP_DIR_INCOMING;
 	newtransport->transport.tpmgr = tpmgr;
 	newtransport->transport.send_msg = &ws_send_msg;
-- 
GitLab