mirror of https://github.com/PentHertz/srsLTE.git
some allocated buffers in the s1ap were not being correctly deallocated. sctp_sendmsg() blocks until the buffer is written to the socket, so it is ok to deallocate the buffer right after this call.
This commit is contained in:
parent
d1fa61527f
commit
4fd82f4bcb
|
@ -896,6 +896,9 @@ bool s1ap::send_initial_ctxt_setup_response(uint16_t rnti, LIBLTE_S1AP_MESSAGE_I
|
||||||
ssize_t n_sent = sctp_sendmsg(socket_fd, buf->msg, buf->N_bytes,
|
ssize_t n_sent = sctp_sendmsg(socket_fd, buf->msg, buf->N_bytes,
|
||||||
(struct sockaddr*)&mme_addr, sizeof(struct sockaddr_in),
|
(struct sockaddr*)&mme_addr, sizeof(struct sockaddr_in),
|
||||||
htonl(PPID), 0, ue_ctxt_map[rnti].stream_id, 0, 0);
|
htonl(PPID), 0, ue_ctxt_map[rnti].stream_id, 0, 0);
|
||||||
|
|
||||||
|
pool->deallocate(buf);
|
||||||
|
|
||||||
if(n_sent == -1) {
|
if(n_sent == -1) {
|
||||||
s1ap_log->error("Failed to send InitialContextSetupResponse for RNTI:0x%x\n", rnti);
|
s1ap_log->error("Failed to send InitialContextSetupResponse for RNTI:0x%x\n", rnti);
|
||||||
return false;
|
return false;
|
||||||
|
@ -947,6 +950,9 @@ bool s1ap::send_erab_setup_response(uint16_t rnti, LIBLTE_S1AP_MESSAGE_E_RABSETU
|
||||||
ssize_t n_sent = sctp_sendmsg(socket_fd, buf->msg, buf->N_bytes,
|
ssize_t n_sent = sctp_sendmsg(socket_fd, buf->msg, buf->N_bytes,
|
||||||
(struct sockaddr*)&mme_addr, sizeof(struct sockaddr_in),
|
(struct sockaddr*)&mme_addr, sizeof(struct sockaddr_in),
|
||||||
htonl(PPID), 0, ue_ctxt_map[rnti].stream_id, 0, 0);
|
htonl(PPID), 0, ue_ctxt_map[rnti].stream_id, 0, 0);
|
||||||
|
|
||||||
|
pool->deallocate(buf);
|
||||||
|
|
||||||
if(n_sent == -1) {
|
if(n_sent == -1) {
|
||||||
s1ap_log->error("Failed to send E_RABSetupResponse for RNTI:0x%x\n", rnti);
|
s1ap_log->error("Failed to send E_RABSetupResponse for RNTI:0x%x\n", rnti);
|
||||||
return false;
|
return false;
|
||||||
|
@ -992,6 +998,9 @@ bool s1ap::send_initial_ctxt_setup_failure(uint16_t rnti)
|
||||||
ssize_t n_sent = sctp_sendmsg(socket_fd, buf->msg, buf->N_bytes,
|
ssize_t n_sent = sctp_sendmsg(socket_fd, buf->msg, buf->N_bytes,
|
||||||
(struct sockaddr*)&mme_addr, sizeof(struct sockaddr_in),
|
(struct sockaddr*)&mme_addr, sizeof(struct sockaddr_in),
|
||||||
htonl(PPID), 0, ue_ctxt_map[rnti].stream_id, 0, 0);
|
htonl(PPID), 0, ue_ctxt_map[rnti].stream_id, 0, 0);
|
||||||
|
|
||||||
|
pool->deallocate(buf);
|
||||||
|
|
||||||
if(n_sent == -1) {
|
if(n_sent == -1) {
|
||||||
s1ap_log->error("Failed to send UplinkNASTransport for RNTI:0x%x\n", rnti);
|
s1ap_log->error("Failed to send UplinkNASTransport for RNTI:0x%x\n", rnti);
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue