diff --git a/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c index 4cb0eb9dcd..e9def841d0 100644 --- a/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c +++ b/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c @@ -213,7 +213,10 @@ nwGtpv1uCreateAndSendMsg( NwGtpv1uStackT *thiz, NwU32T peerIp, NwU16T peerPort, *((NwU32T *) msgHdr) = htonl(pMsg->teid); msgHdr += 4; - GTPU_DEBUG("nwGtpv1uCreateAndSendMsg to teid %u length %d\n", pMsg->teid, pMsg->msgLen); + GTPU_DEBUG("nwGtpv1uCreateAndSendMsg to teid %u length %d offset %d\n", + pMsg->teid, + pMsg->msgLen, + pMsg->msgBufOffset); if(pMsg->seqNumFlag || pMsg->extHdrFlag || pMsg->npduNumFlag) { *((NwU16T *) msgHdr) = (pMsg->seqNumFlag ? htons(pMsg->seqNum) : 0x0000); diff --git a/openair-cn/UDP/udp_eNB_task.c b/openair-cn/UDP/udp_eNB_task.c index 0bef5cdf7e..bf39a87ec0 100644 --- a/openair-cn/UDP/udp_eNB_task.c +++ b/openair-cn/UDP/udp_eNB_task.c @@ -334,7 +334,7 @@ void *udp_eNB_task(void *args_p) ITTI_MSG_ORIGIN_ID(received_message_p)); pthread_mutex_unlock(&udp_socket_list_mutex); if (udp_data_req_p->buffer) { - free(udp_data_req_p->buffer); + itti_free(ITTI_MSG_ORIGIN_ID(received_message_p), udp_data_req_p->buffer); } goto on_error; } @@ -349,12 +349,14 @@ void *udp_eNB_task(void *args_p) bytes_written = sendto( udp_sd, - udp_data_req_p->buffer, + &udp_data_req_p->buffer[udp_data_req_p->buffer_offset], udp_data_req_p->buffer_length, 0, (struct sockaddr *)&peer_addr, sizeof(struct sockaddr_in)); + itti_free(ITTI_MSG_ORIGIN_ID(received_message_p), udp_data_req_p->buffer); + if (bytes_written != udp_data_req_p->buffer_length) { LOG_E(UDP_, "There was an error while writing to socket " "(%d:%s)\n", errno, strerror(errno));