Re: [PATCH] vt: add mode validation in vt_setactivate
From: Greg KH
Date: Sun Jul 26 2026 - 09:30:51 EST
On Sun, May 03, 2026 at 03:46:15AM +0800, Wang Zihan wrote:
> The vt_setactivate() function accepts any mode value without validation,
> while VT_SETMODE correctly rejects invalid values (only VT_AUTO and
> VT_PROCESS are valid).
>
> This allows users to set invalid mode values (e.g., 0xFF) which bypasses
> VT_PROCESS signal handling and causes undefined VT switching behavior.
>
> Fix this by adding the same validation as VT_SETMODE.
>
> Signed-off-by: Wang Zihan <jiyu03@xxxxxx>
> ---
> drivers/tty/vt/vt_ioctl.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
> index 28993a3d0acb..b8787283a0fa 100644
> --- a/drivers/tty/vt/vt_ioctl.c
> +++ b/drivers/tty/vt/vt_ioctl.c
> @@ -596,6 +596,8 @@ static int vt_setactivate(struct vt_setactivate __user *sa)
> return -EFAULT;
> if (vsa.console == 0 || vsa.console > MAX_NR_CONSOLES)
> return -ENXIO;
> + if (vsa.mode.mode != VT_AUTO && vsa.mode.mode != VT_PROCESS)
> + return -EINVAL;
Are you sure this isn't intentional? How was this tested? If an
"invalid" mode is set, what happens?
thanks,
greg k-h