diff options
author | Matt Jordan <mjordan@digium.com> | 2015-05-24 13:55:34 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2015-05-24 13:55:34 -0500 |
commit | 0af91f5f22bba28255a87f5081f161f02ee4b219 (patch) | |
tree | a9f5595209f6a689407715a0266accb109e57742 | |
parent | 5a1f2a5884c250b2c709e4fb48f06dc0dfb39553 (diff) | |
parent | 70d54ab6c418e57db7660a2e00c51d1fcfe46771 (diff) |
Merge "res_pjsip_transport_websocket: Fix crash on receiving large SIP packets"
-rw-r--r-- | res/res_pjsip_transport_websocket.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/res/res_pjsip_transport_websocket.c b/res/res_pjsip_transport_websocket.c index 70e5c2abf..914c8b8ff 100644 --- a/res/res_pjsip_transport_websocket.c +++ b/res/res_pjsip_transport_websocket.c @@ -197,12 +197,13 @@ static int transport_read(void *data) pjsip_rx_data *rdata = &newtransport->rdata; int recvd; pj_str_t buf; + int pjsip_pkt_len; pj_gettimeofday(&rdata->pkt_info.timestamp); - pj_memcpy(rdata->pkt_info.packet, read_data->payload, - PJSIP_MAX_PKT_LEN < read_data->payload_len ? PJSIP_MAX_PKT_LEN : read_data->payload_len); - rdata->pkt_info.len = read_data->payload_len; + pjsip_pkt_len = PJSIP_MAX_PKT_LEN < read_data->payload_len ? PJSIP_MAX_PKT_LEN : read_data->payload_len; + pj_memcpy(rdata->pkt_info.packet, read_data->payload, pjsip_pkt_len); + rdata->pkt_info.len = pjsip_pkt_len; rdata->pkt_info.zero = 0; pj_sockaddr_parse(pj_AF_UNSPEC(), 0, pj_cstr(&buf, ast_sockaddr_stringify(ast_websocket_remote_address(session))), &rdata->pkt_info.src_addr); |