⛏️ index : haiku.git

author Augustin Cavalier <waddlesplash@gmail.com> 2025-07-15 18:08:00.0 -04:00:00
committer Augustin Cavalier <waddlesplash@gmail.com> 2025-07-15 18:08:00.0 -04:00:00
commit
2b79f7b494c2be2d94f07dad5ceb0a91d73052ed [patch]
tree
80365e3cd32cb32553b1b41c857dd1f5f7fa2e4c
parent
9626cf86ec9e38cac9e888a9e0fcbbb2ef007914
download
2b79f7b494c2be2d94f07dad5ceb0a91d73052ed.tar.gz

kernel/team: Add permissions checks in get_extended_team_info.



Diff

 src/system/kernel/team.cpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/system/kernel/team.cpp b/src/system/kernel/team.cpp
index c7dfb13..27e112d 100644
--- a/src/system/kernel/team.cpp
+++ b/src/system/kernel/team.cpp
@@ -4456,6 +4456,15 @@
		return B_BAD_ADDRESS;
	}

	Team* team = Team::Get(teamID);
	if (team == NULL)
		return B_BAD_TEAM_ID;
	BReference<Team> teamReference(team, true);

	uid_t uid = geteuid();
	if (uid != 0 && uid != team->effective_uid)
		return B_NOT_ALLOWED;

	KMessage info;

	if ((flags & B_TEAM_INFO_BASIC) != 0) {
@@ -4473,12 +4482,7 @@

		io_context* ioContext;
		{
			// get the team structure
			Team* team = Team::GetAndLock(teamID);
			if (team == NULL)
				return B_BAD_TEAM_ID;
			BReference<Team> teamReference(team, true);
			TeamLocker teamLocker(team, true);
			TeamLocker teamLocker(team);

			// copy the data
			teamClone.id = team->id;