Is it safe to pass null (0
, NULL
, nullptr
, ..) to dlclose()
?
I could not find anything regarding this in the manual.
If it is not documented, it is most likely not (or at "best" undefined). Actually a simple test could verify that for your platform:
Compiling this
#include <dlfcn.h>
int main()
{
dlclose(0);
}
Already yields the following compiler warning (gcc):
test.c: In function ‘main’:
test.c:5:2: warning: null argument where non-null required (argument 1) [-Wnonnull]
5 | dlclose(0);
| ^~~~~~~
/usr/bin/ld: /tmp/ccYF9oqz.o: in function `main':
An running it, crashes as expected with a segmentation fault.
Why you want to do or need to know this in the first place is the question.
It should be trivial to do a null-check before calling dlclose
or provide
a wrapper that does it, if otherwise inconvenient.