diff --git a/components/vfs/vfs_uart.c b/components/vfs/vfs_uart.c index 7a1d113526..c413cbfb00 100644 --- a/components/vfs/vfs_uart.c +++ b/components/vfs/vfs_uart.c @@ -474,10 +474,6 @@ static esp_err_t uart_end_select(void *end_select_args) { uart_select_args_t *args = end_select_args; - if (args) { - free(args); - } - portENTER_CRITICAL(uart_get_selectlock()); esp_err_t ret = unregister_select(args); for (int i = 0; i < UART_NUM; ++i) { @@ -485,6 +481,10 @@ static esp_err_t uart_end_select(void *end_select_args) } portEXIT_CRITICAL(uart_get_selectlock()); + if (args) { + free(args); + } + return ret; }