From 592675022ed7faea98d92c288155235e6b14ede7 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Mon, 5 May 2025 19:08:30 +0300 Subject: [PATCH] Kernel: Allow tcgetpgrp on pseudo terminal masters --- kernel/kernel/Process.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index d42154a5..85217e8c 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -2309,10 +2309,16 @@ namespace Kernel { LockGuard _(m_process_lock); + auto inode = TRY(m_open_file_descriptors.inode_of(fd)); + + // NOTE: This is a hack but I'm not sure how terminal is supposted to get + // slave's foreground pgroup while not having controlling terminal + if (TRY(m_open_file_descriptors.path_of(fd)) == ""_sv) + return TRY(static_cast(inode.ptr())->slave())->foreground_pgrp(); + if (!m_controlling_terminal) return BAN::Error::from_errno(ENOTTY); - auto inode = TRY(m_open_file_descriptors.inode_of(fd)); if (!inode->is_tty()) return BAN::Error::from_errno(ENOTTY);