The Cairo operating system
Posted Jul 7, 2006 0:30 UTC (Fri) by
nix (subscriber, #2304)
In reply to:
The Cairo operating system by oak
Parent article:
Cairo release 1.2.0 now available
dlclose() also interacts... interestingly with VM randomization.
I found a bug in Subversion (with --enable-dso) a while back which reduces to dlopen(), store a pointer to a function in the shared object in a data structure, dlclose(); later dlopen() again, call through the function pointer, *boom*; there's no guarantee that the dlopen() is at the same address this time, and with VM randomization it's pretty much guaranteed to be different.
Oops.
I think this would likely also kill C++ RTTI through repeatedly-dlopen()ed shared libraries, since that relies on pointer comparisons. The lesson in all this is to avoid dlclose().
(
Log in to post comments)