diff --git a/examples/bluetooth/nimble/ble_spp/spp_server/main/main.c b/examples/bluetooth/nimble/ble_spp/spp_server/main/main.c index 7618bc03d7..0be28e1574 100644 --- a/examples/bluetooth/nimble/ble_spp/spp_server/main/main.c +++ b/examples/bluetooth/nimble/ble_spp/spp_server/main/main.c @@ -355,7 +355,7 @@ void ble_server_uart_task(void *pvParameters) //Waiting for UART event. if (xQueueReceive(spp_common_uart_queue, (void * )&event, (TickType_t)portMAX_DELAY)) { switch (event.type) { - //Event of UART receving data + //Event of UART receiving data case UART_DATA: if (event.size) { uint8_t *ntf; @@ -367,7 +367,7 @@ void ble_server_uart_task(void *pvParameters) /* Check if client has subscribed to notifications */ if (conn_handle_subs[i]) { 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, txom); if (rc == 0) { @@ -377,6 +377,8 @@ void ble_server_uart_task(void *pvParameters) } } } + + free(ntf); } break; default: