Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Thu, 15 Mar 2018 11:32:36 -0400
From: Rich Felker <>
Subject: Re: How to test if dlclose is a no-op?

On Thu, Mar 15, 2018 at 10:24:05AM -0500, Thadeus Fleming wrote:
> I'm working on improving a system that makes some bad assumptions
> about dynamic unloading. While I'm not fond of dynamic unloading, I
> think it might be valuable to be able to distinguish between "this C
> library doesn't support unloading at all" and "if the planets are all
> aligned, unloading might work." Testing if dlclose is a no-op would
> allow me to make that distinction.

Well obviously you can do something like dlopen/dlclose/dlopen of the
same library (a specially crafted probe library) with a ctor and
observe whether ctor ran once or twice. But it seems like if you fix
whatever bad assumptions the code has to the point that it runs
correctly on musl, it will run correctly everywhere without caring
what the behavior is.


> On Thu, Mar 15, 2018 at 9:40 AM, Rich Felker <> wrote:
> > On Thu, Mar 15, 2018 at 08:32:34AM -0500, Thadeus Fleming wrote:
> >> In the spirit of not “assum[ing] a certain implementation has
> >> particular properties rather than testing,” how can one test if
> >> dlclose is a no-op, as it is in musl, without breaking things if it
> >> isn’t?
> >
> > This sounds like an XY problem¹. Do you care about whether you can
> > recover virtual memory space, whether the underlying fs objects remain
> > referenced, whether there's a cycle of dtors and ctors running, or
> > something else?
> >
> > FYI there is no clear answer to the question even on other
> > implementations. glibc only sometimes unloads; there are corner cases
> > and race-type conditions where unloading is impossible for them. You
> > really should not be designing around an assumption/requirement that
> > anything get unloaded.
> >
> > Rich
> >
> >
> >
> > ¹

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.