fix: use O_RDONLY (0) for /dev/tty open, guard invalid fd
This commit is contained in:
@@ -34,10 +34,9 @@
|
||||
(values (sb-alien:deref winsize 1)
|
||||
(sb-alien:deref winsize 0)))
|
||||
(sb-alien:free-alien winsize))))
|
||||
;; Direct ioctl on /dev/tty — opens the real controlling terminal.
|
||||
(ignore-errors
|
||||
(let ((tty-fd (sb-unix:unix-open "/dev/tty" 2 0))) ; O_RDWR = 2
|
||||
(when tty-fd
|
||||
(let ((tty-fd (sb-unix:unix-open "/dev/tty" 0 0))) ; O_RDONLY
|
||||
(when (and tty-fd (numberp tty-fd) (> tty-fd 0))
|
||||
(unwind-protect
|
||||
(let* ((winsize (sb-alien:make-alien sb-alien:unsigned-short 4)))
|
||||
(sb-unix:unix-ioctl tty-fd 21523 (sb-alien:alien-sap winsize))
|
||||
|
||||
Reference in New Issue
Block a user