Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 May 2023 07:55:52 GMT
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 0f62290e7f74 - main - linux(4): Check fd passed to unlockpt()
Message-ID:  <202305180755.34I7tqvt012788@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=0f62290e7f749b7a453d413dd72c406129a9aba5

commit 0f62290e7f749b7a453d413dd72c406129a9aba5
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-05-18 07:55:39 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-05-18 07:55:39 +0000

    linux(4): Check fd passed to unlockpt()
    
    In our implementation, grantpt() and unlockpt() don't actually have
    any use, because PTY's are created on the fly and already have proper
    permissions upon creation.
    Atleast check that a proper fd passed to unlockpt(). For grantpt()
    Glibc calls TIOCGPTN ioctl which would fail if fd is not a master.
    
    Differential Revision:  https://reviews.freebsd.org/D40100
    MFC after:              1 week
---
 sys/compat/linux/linux_ioctl.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c
index 4583d4bd6784..5e7446f0dfaa 100644
--- a/sys/compat/linux/linux_ioctl.c
+++ b/sys/compat/linux/linux_ioctl.c
@@ -1009,8 +1009,12 @@ linux_ioctl_termio(struct thread *td, struct linux_ioctl_args *args)
 		error = ENOIOCTL;
 		break;
 	case LINUX_TIOCSPTLCK:
-		/* Our unlockpt() does nothing. */
-		error = 0;
+		/*
+		 * Our unlockpt() does nothing. Check that fd refers
+		 * to a pseudo-terminal master device.
+		 */
+		args->cmd = TIOCPTMASTER;
+		error = (sys_ioctl(td, (struct ioctl_args *)args));
 		break;
 	default:
 		error = ENOIOCTL;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202305180755.34I7tqvt012788>