[lvc-project] [PATCH v6.12] serial: core: fix infinite loop in handle_tx() for PORT_UNKNOWN

Fedor Pchelkin pchelkin at ispras.ru
Fri Aug 21 18:58:09 MSK 2026


On Fri, 21. Aug 18:41, Andrey Kalachev wrote:
> Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> 
> [ The original patch depend on commit
>   31e0b7863c9b ("serial: rename local uart_port_lock() -> uart_port_ref_lock()")
>   Remove dependency and add security warning message. ]
> 

Лишние пустые строки вокруг бэкпорт-комментария.

> Signed-off-by: Andrey Kalachev <kalachev at swemel.ru>
> ---
>  drivers/tty/serial/serial_core.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
> index 75272749b397..167e28a79bcf 100644
> --- a/drivers/tty/serial/serial_core.c
> +++ b/drivers/tty/serial/serial_core.c
> @@ -645,7 +645,12 @@ static unsigned int uart_write_room(struct tty_struct *tty)
>  	unsigned int ret;
>  
>  	port = uart_port_lock(state, flags);
> -	ret = kfifo_avail(&state->port.xmit_fifo);
> +	if (!state->port.xmit_buf) {
> +		printk_ratelimited(KERN_WARNING "SECURITY_ALERT: Possible CVE-2026-23472 exploit attempt! Process '%s' (PID %d) tried to write to uninitialized port on line %d.\n",
> +				current->comm, current->pid, port ? port->line : -1);

Нет, кричать на каждом углу, что сработала защита от CVE, не надо,
пожалуйста.  Так не делают в ядре в целом.  Да и апстрим патч этого не
делает, в частности.

Это касается отправленных патчей для всех веток.

> +		ret = 0;
> +	} else
> +		ret = kfifo_avail(&state->port.xmit_fifo);

Для else тоже должны быть фигурные скобки согласно кодстайлу.  Но когда
уберёте ненужный printk, можно и без скобок.

>  	uart_port_unlock(port, flags);
>  	return ret;
>  }



More information about the lvc-project mailing list