Re: [PATCH] libselinux: Ignore missing directories when -i is used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Nov 7, 2022 at 2:34 PM James Carter <jwcart2@xxxxxxxxx> wrote:
>
> On Mon, Oct 31, 2022 at 12:51 PM Vit Mojzis <vmojzis@xxxxxxxxxx> wrote:
> >
> > Currently "-i" only ignores a file whose parent directory exists. Start also
> > ignoring paths with missing components.
> >
> > Fixes:
> >   # restorecon -i -v -R /var/log/missingdir/missingfile; echo $?
> >   255
> >   restorecon: SELinux: Could not get canonical path for /var/log/missingdir/missingfile restorecon: No such file or directory.
> >
> > Signed-off-by: Vit Mojzis <vmojzis@xxxxxxxxxx>
>
> Acked-by: James Carter <jwcart2@xxxxxxxxx>
>

Merged.
Thanks,
Jim

> > ---
> >  libselinux/src/selinux_restorecon.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c
> > index 2d24559f..6b5f6921 100644
> > --- a/libselinux/src/selinux_restorecon.c
> > +++ b/libselinux/src/selinux_restorecon.c
> > @@ -1108,6 +1108,10 @@ static int selinux_restorecon_common(const char *pathname_orig,
> >                         pathname = realpath(pathname_orig, NULL);
> >                         if (!pathname) {
> >                                 free(basename_cpy);
> > +                               /* missing parent directory */
> > +                               if (state.flags.ignore_noent && errno == ENOENT) {
> > +                                       return 0;
> > +                               }
> >                                 goto realpatherr;
> >                         }
> >                 } else {
> > @@ -1121,6 +1125,9 @@ static int selinux_restorecon_common(const char *pathname_orig,
> >                         free(dirname_cpy);
> >                         if (!pathdnamer) {
> >                                 free(basename_cpy);
> > +                               if (state.flags.ignore_noent && errno == ENOENT) {
> > +                                       return 0;
> > +                               }
> >                                 goto realpatherr;
> >                         }
> >                         if (!strcmp(pathdnamer, "/"))
> > --
> > 2.37.3
> >



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux