misc/151379: libcryptopp.so/libcrypto++.so and Shared Objects
noloader at gmail.com
Mon Oct 11 02:40:01 UTC 2010
>Synopsis: libcryptopp.so/libcrypto++.so and Shared Objects
>Arrival-Date: Mon Oct 11 02:40:00 UTC 2010
>Originator: Jeffrey Walton
Crypto++ received a few GNU Linux based bug reports [1, 2], and Wei Dai vetted out a crash due to global object destruction in a shared object (the bug was not present in a static library). The crash fix was sufficient to support shared objects, and the commit occurred at revision 496 .
Please ensure the distribution is using revision 496 or higher of Crypto++. Crypto++ version 5.6.1 includes revision 496, while Crypto 5.6.0 does not include the revision.
In addition to the shared object bug fix committed at revision 496, the 492 commit included a SHA-2 bug fix on x64 with GCC optimizations enabled .
A stress test was written while trying to duplicate the shared object issue, and it might make a good test case for the distribution's build bot. The program creates 96 threads which perform dynamic loads/unloads (with lots of overlap) to ensure proper cleanup on library unload. The stress test, released under GPLv3, is available at http://www.cryptopp.com/wiki/Linux#Note_for_Distribution_Packagers.
The Crypto++ library can be downloaded directly from http://www.cryptopp.com in ZIP format. The 5.6.1 ZIP includes shared object support (but the ZIP will get stale over time since the ZIP file is frozen). Crypto++ can also be fetched from SourceForge, which is always up to date. Issue "svn checkout https://cryptopp.svn.sourceforge.net/svnroot/cryptopp/trunk/c5 cryptopp".
Friend of the Crypto++ Library
 Errors with multiple loading cryptopp as shared lib on Linux,
 RTLD_GLOBAL and libcryptopp.so crash,
See Errors with multiple loading cryptopp as shared lib on Linux,
Update to Crypto 5.6.1.
More information about the freebsd-bugs