Date: Sat, 16 Jan 2016 14:08:58 -0800 From: Vijay Singh <vijju.singh@gmail.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Chagin Dmitry <dchagin@freebsd.org>, freebsd-hackers@freebsd.org Subject: Re: irrelevant locking Message-ID: <CALCNsJT_gH5gJaB%2ByVQRcON84JntSUevG8-X-0Z5_13DkPC%2BBg@mail.gmail.com> In-Reply-To: <20160116202643.GL3942@kib.kiev.ua> References: <20160116195819.GA41610@chd.heemeyer.club> <20160116202643.GL3942@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Couldn't the get & set race otherwise? On Jan 16, 2016 12:27 PM, "Konstantin Belousov" <kostikbel@gmail.com> wrote: > On Sat, Jan 16, 2016 at 10:58:19PM +0300, Chagin Dmitry wrote: > > hi, please, can someone explain the reason to take the process lock here: > There is no reason, I think that the PROC_LOCK() can be removed. > > > > > 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); > > } > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALCNsJT_gH5gJaB%2ByVQRcON84JntSUevG8-X-0Z5_13DkPC%2BBg>