The branch main has been updated by emaste:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=5198c32210039d8dc92554647384eee75688848c

commit 5198c32210039d8dc92554647384eee75688848c
Author:     Ed Maste <[email protected]>
AuthorDate: 2025-09-30 19:39:34 +0000
Commit:     Ed Maste <[email protected]>
CommitDate: 2025-11-27 00:19:04 +0000

    vt: Allow VT_SETMODE with frsig=0
    
    Linux does not check that any of the signals in vt_mode VT_SETMODE ioctl
    (relsig, acqsig, frsig) are valid, but FreeBSD required that all three
    are valid.  frsig is unusued in both Linux and FreeBSD, and software
    typically leaves it unset.  To improve portability, allow frsig to be
    set to zero.
    
    PR:             289812
    Reported by:    Dušan Gvozdenović
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D52835
---
 sys/dev/vt/vt_core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/vt/vt_core.c b/sys/dev/vt/vt_core.c
index a1376be954ee..5e8f7b1d0bb7 100644
--- a/sys/dev/vt/vt_core.c
+++ b/sys/dev/vt/vt_core.c
@@ -3046,9 +3046,9 @@ skip_thunk:
                                DPRINTF(5, "reset WAIT_ACQ, ");
                        return (0);
                } else if (mode->mode == VT_PROCESS) {
-                       if (!ISSIGVALID(mode->relsig) ||
-                           !ISSIGVALID(mode->acqsig) ||
-                           !ISSIGVALID(mode->frsig)) {
+                       if (!(ISSIGVALID(mode->relsig) &&
+                           ISSIGVALID(mode->acqsig) &&
+                           (mode->frsig == 0 || ISSIGVALID(mode->frsig)))) {
                                DPRINTF(5, "error EINVAL\n");
                                return (EINVAL);
                        }

Reply via email to