#277: libgcrypt and gcry_check_version in a multithreaded application. -------------------------------------------------+------------------------- Reporter: TMcC | Owner: Type: defect | Status: new Priority: normal | Milestone: 1.4.3 Component: crypto | Version: 1.4.2 Keywords: threads, mt, multithreaded, crypto, | Blocked By: sigabrt, gcry_check_version, gcrpyt, | libgcrypt | Blocks: | -------------------------------------------------+------------------------- In a multithreaded application, libssh2_init() ought to call gcry_check_version(), or the documentation for libssh2 ought to advise that libgcrpyt's gcry_check_version() must be called, before libssh2_init() is executed.
Please see here: http://www.gnupg.org/documentation/manuals/gcrypt-devel /Initializing-the-library.html Without this call, we get SIGABRTs from gcrpyt. In summary, in a multithread application, the sequence of calls should be: {{{#!c // Enable thread safety for gcrypt. int result = gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); if (!gcry_check_version (GCRYPT_VERSION)) { std::cerr << "libgcrypt version mismatch" << std::endl; exit (2); } libssh2_init(); }}} -- Ticket URL: <https://trac.libssh2.org/ticket/277> libssh2 <https://trac.libssh2.org/> C library for writing portable SSH2 clients _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel