svn commit: r350116 - head/lib/libc/gen
Ian Lepore
ian at freebsd.org
Thu Jul 18 21:48:44 UTC 2019
On Thu, 2019-07-18 at 21:41 +0000, Brooks Davis wrote:
> On Thu, Jul 18, 2019 at 09:33:56PM +0000, Brooks Davis wrote:
> > Author: brooks
> > Date: Thu Jul 18 21:33:55 2019
> > New Revision: 350116
> > URL: https://svnweb.freebsd.org/changeset/base/350116
> >
> > Log:
> > Document that setmode(3) is not thread safe.
> >
> > In some circumstances, setmode(3) may call umask(2) twice to retrieve
> > the current mode and then restore it. Between calls, the process will
> > have a umask of 0.
>
> This race isn't especially serious, since it only occurs when
> security.bsd.unprivileged_proc_debug=0, but it's probably something to
> fix. The easiest solution would probably be to implement a getumask()
> syscall.
>
Or define a magic value to pass to umask(2) that means "return the old
mask without changing anything". If umask() only cares about the low 9
bits and mode_t is uint16, that shouldn't be hard.
-- Ian
More information about the svn-src-all
mailing list