summaryrefslogtreecommitdiff
path: root/res/res_pjsip_transport_websocket.c
diff options
context:
space:
mode:
authorSean Bright <sean.bright@gmail.com>2017-11-16 17:18:16 -0500
committerSean Bright <sean.bright@gmail.com>2017-11-16 17:29:11 -0500
commit7a735d45e25a1101ef1c665996f2d5b16fe021f7 (patch)
tree406994a334c733f7d3b8426169f53a8e02401a9c /res/res_pjsip_transport_websocket.c
parentccbf176c305942f5f0afe833d053c6d974abfda8 (diff)
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
Diffstat (limited to 'res/res_pjsip_transport_websocket.c')
-rw-r--r--res/res_pjsip_transport_websocket.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c
index b5b6a3e0a..3ce90390c 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;