fix(nimble): Handle missing free in application

This commit is contained in:
Rahul Tank
2024-03-27 19:17:58 +05:30
parent 2a65cb1b50
commit eafad32dc6

View File

@@ -355,7 +355,7 @@ void ble_server_uart_task(void *pvParameters)
//Waiting for UART event. //Waiting for UART event.
if (xQueueReceive(spp_common_uart_queue, (void * )&event, (TickType_t)portMAX_DELAY)) { if (xQueueReceive(spp_common_uart_queue, (void * )&event, (TickType_t)portMAX_DELAY)) {
switch (event.type) { switch (event.type) {
//Event of UART receving data //Event of UART receiving data
case UART_DATA: case UART_DATA:
if (event.size) { if (event.size) {
uint8_t *ntf; uint8_t *ntf;
@@ -367,7 +367,7 @@ void ble_server_uart_task(void *pvParameters)
/* Check if client has subscribed to notifications */ /* Check if client has subscribed to notifications */
if (conn_handle_subs[i]) { if (conn_handle_subs[i]) {
struct os_mbuf *txom; struct os_mbuf *txom;
txom = ble_hs_mbuf_from_flat(ntf, sizeof(ntf)); txom = ble_hs_mbuf_from_flat(ntf, event.size);
rc = ble_gatts_notify_custom(i, ble_spp_svc_gatt_read_val_handle, rc = ble_gatts_notify_custom(i, ble_spp_svc_gatt_read_val_handle,
txom); txom);
if (rc == 0) { if (rc == 0) {
@@ -377,6 +377,8 @@ void ble_server_uart_task(void *pvParameters)
} }
} }
} }
free(ntf);
} }
break; break;
default: default: