Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Jan 2016 22:58:19 +0300
From:      Chagin Dmitry <dchagin@freebsd.org>
To:        freebsd-hackers@freebsd.org
Subject:   irrelevant locking
Message-ID:  <20160116195819.GA41610@chd.heemeyer.club>

next in thread | raw e-mail | index | archive | help
hi, please, can someone explain the reason to take the process lock here:

int
sys_issetugid(register struct thread *td, struct issetugid_args *uap)
{
	struct proc *p = td->td_proc;

	/*
	 * Note: OpenBSD sets a P_SUGIDEXEC flag set at execve() time,
	 * we use P_SUGID because we consider changing the owners as
	 * "tainting" as well.
	 * This is significant for procs that start as root and "become"
	 * a user without an exec - programs cannot know *everything*
	 * that libc *might* have put in their data segment.
	 */
	PROC_LOCK(p);
	td->td_retval[0] = (p->p_flag & P_SUGID) ? 1 : 0;
	PROC_UNLOCK(p);
	return (0);
}
 



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