Re: Annotate Deprecated Functions in libselinux

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

 



On Thu, Feb 27, 2020 at 3:31 PM Stephen Smalley
<stephen.smalley.work@xxxxxxxxx> wrote:
>
> On Thu, Feb 27, 2020 at 4:19 PM William Roberts
> <bill.c.roberts@xxxxxxxxx> wrote:
> >
> > On Thu, Feb 27, 2020 at 3:11 PM Stephen Smalley
> > <stephen.smalley.work@xxxxxxxxx> wrote:
> > > That just controls what is exported.  The hidden_proto/hidden_def
> > > stuff is to ensure that when libselinux calls one of its own exported
> > > symbols, that symbol resolves to the actual libselinux implementation
> > > and not something provided by some other DSO earlier in the search
> > > path, which is otherwise possible.
> >
> > Sure, but do we actually care about that?
> >
> > If we actually do care, we could throw a script in the build to make sure
> > anything in the linker script map is not used internally.
> >
> > Right now, all this DSO hygiene and look up protection is opt-in, which
> > usually always results in missed cases. With the linker script, it's opt-out,
> > which is usually always how you want to do things.
>
> There are lots of cases where libselinux calls one of its own exported
> symbols, so you can't just prohibit that.
> -fno-semantic-interposition sounds like the right solution to me, and
> appears to be the default in clang.

Interesting to note.

> Dropping the hidden_def/hidden_proto stuff without enabling
> -fno-semantic-interposition could potentially break because
> libselinux could suddenly start using some external implementation of
> one of its own functions.

Conjecture.

> Adding a map file and defaulting to hidden visibility would be a good
> idea but is separate.

IIUC, not really, the current code attempts to limit our exported symbols.

You would need both the compiler option and a map file to keep functional
parity with whats there. Which is fine, that's easy enough to do and should
be some welcome housekeeping.



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

  Powered by Linux