nuttx/drivers/serial
dongjiuzhu1 1946bc4e44 drivers/serial: fix crash when buffer is full and only recvbuf is implemented
When the receive buffer is full and the driver only implements recvbuf
operation without receive operation, the code would crash due to calling
a NULL function pointer. This patch fixes the issue by:

1. Check if recvbuf is available before calling it
2. When buffer is full, use a temporary buffer to drain hardware FIFO
   to prevent data accumulation in hardware
3. Add proper NULL check for receive operation to avoid crash
4. Initialize pbuf to NULL to prevent uninitialized variable usage

This ensures the serial driver works correctly even when only recvbuf
is implemented and the receive buffer is full.

Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2026-01-28 22:19:21 +08:00
..
CMakeLists.txt cmake(bugfix):add missing driver/serial CMake build source 2024-11-13 02:36:18 +08:00
Kconfig drivers/serial: Fix Kconfig style 2025-06-26 02:30:46 +08:00
Kconfig-16550 drivers/serial/Kconfig-16550: fix non-existent option 2026-01-19 16:12:25 +01:00
Kconfig-cmsdk drivers/serial:support arm cmsdk drivers 2024-04-26 18:42:35 -03:00
Kconfig-lpuart Add initial support for NXP S32K3 MCU family 2022-07-25 23:47:05 +08:00
Kconfig-pci drivers/serial: simplify 16550_PCI_UARTx_CLOCK config 2025-01-03 08:52:43 +08:00
Kconfig-pl011 drivers/serial/uart_pl011.c : add the interface about clock and reset control for reducing power consumption. 2024-06-03 21:18:44 +08:00
Kconfig-sci
Kconfig-uart
Kconfig-usart drivers/serial/serial: prevent race conditions on 8-bit architectures 2025-06-19 10:01:24 -03:00
Make.defs drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
ptmx.c drivers/serial: fix the issue of the refs count for filep being zeroed out by utilizing dup2 2025-06-26 09:31:14 -03:00
pty.c drivers/serial/pty: fix memory leak when pty_destroy 2026-01-06 15:08:23 -03:00
pty.h drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
serial.c sched/sleep: replace all Signal-based sleep implement to Scheduled sleep 2025-10-17 14:05:02 +08:00
serial_cmsdk.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
serial_dma.c drivers/serial: Fix SIGINT not delivered to foreground process on Ctrl-C. 2026-01-24 16:54:36 +08:00
serial_gdbstub.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
serial_io.c drivers/serial: fix crash when buffer is full and only recvbuf is implemented 2026-01-28 22:19:21 +08:00
uart_16550.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
uart_bth4.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_bth5.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_hostfs.c drivers: migrate to SPDX identifier 2024-11-06 18:02:25 +08:00
uart_pci_16550.c style: fix spelling in code comments and strings 2025-05-23 10:48:41 +08:00
uart_pl011.c uart_pl011: "pl011_irq_tx_ready" and "pl011_txready" is reversed. 2025-11-10 14:15:19 +08:00
uart_ram.c serial/uart_ram: update lower buffer offset if previous send completes 2025-01-23 18:14:48 +08:00
uart_rpmsg.c drivers/serial/uart_rpmsg: simplify initialization process of uart_rpmsg 2025-04-02 20:56:01 +08:00