Re: RFC: fixing PR#282995

From: Bob Bishop <rb_at_gid.co.uk>
Date: Thu, 28 Nov 2024 12:35:40 UTC
Hi,

> On 27 Nov 2024, at 21:56, Rick Macklem <rick.macklem@gmail.com> wrote:
> 
> Hi,
> 
> PR#282995 reports that the "-alldirs" export option is broken,
> since it allows an export where the directory path is not a mount point.
> 
> I'll admit I did not recall this semantic for -alldirs and I now see it is only
> documented in the "Examples" section of exports(5).
> 
> Looking at the code, it appears this was broken between releng1 and
> releng2.0 (about 30years ago) when the call to mount(2) in mountd.c
> was changed from using the path in the exports line to using f_mntonname.
> (The check for "it is a mount point" depended on mount(2) failing because
> the path was not a mount point.)
> 
> I do believe the semantic is a useful one,

Why?

> although making it that way
> after 30years might be construed as a POLA violation?
> 
> So, what do others think I should do with this?
> (A) - Patch mountd to enforce the "must be a mount point when -alldirs
>        is specified, plus update exports(5) to state this semantic clearly.
> or
> (B) - Patch mountd so that it enforces "must be a mount point when -alldirs
>        is specified, but only enabled via a new mountd command line option.
>        --> ie. Leave the default as not enforced, but allow enforcement based
>                  on a new mountd option.
>             - Document this in both exports(5) and mountd(8).
> or
> ???

(C) - Patch mountd so that it enforces "must be a mount point when -alldirs
       is specified, but provide a new mountd command line option to restore the old behaviour.
       --> ie. Default as enforced, but allow an override based  on a new mountd option.
            - Document this in both exports(5) and mountd(8).

I think that (A) is too POLA-unfriendly.

> Thanks in advance for your comments, rick
> 

--
Bob Bishop
rb@gid.co.uk