In article <20110228005040.ga26...@netbsd.org>,
David Holland  <dholland-sourcechan...@netbsd.org> wrote:
>On Sun, Feb 27, 2011 at 07:12:16PM -0500, Christos Zoulas wrote:
> > don't depend on F_OK being 0.
> >   :
> > -       if ((SCARG(uap, flags) & ~(R_OK | W_OK | X_OK)) != 0) {
> > +       if ((SCARG(uap, flags) & ~(F_OK | R_OK | W_OK | X_OK)) != 0) {
>
>That doesn't work; if F_OK isn't zero and the user passes 0, we end up
>in the kauth assertion again.
>
>mlelstv and I were just (more or less pointlessly) thrashing out
>various ways to fix that in chat, but it ends up overcomplicated, so I
>suggest reverting the above and instead adding
>
>+       CTASSERT(F_OK == 0);
>        if ((SCARG(uap, flags) & ~(R_OK | W_OK | X_OK)) != 0) {
>
>so that if in the unlikely event that anyone ever tries to change F_OK
>it will then get further attention.

Sounds good to me.

christos

Reply via email to