I contributed a fix for the regression caused by the solution in Ubuntu [1]. The Python wrapper for the GnuTLS library doesn't initialize Libgcrypt properly.

One addition to Carlos' analysis:

> The problem is that when OpenLDAP calls gnutls_global_init(), this
> function does nothing because OpenLDAP had previously already
> initialized libgcrypt at some point on the stack (probably by
> mistake).

My understanding of Howard Chu in LP: #423252 comment #72 [2] is that OpenLDAP doesn't initialize Libgcrypt (it doesn't invoke gcry_check_version which the manual states must be invoked before any other function in the library, and which is correctly invoked by gnutls_global_init). OpenLDAP is required to initialize Libgcrypt's thread callbacks with GCRYCTL_SET_THREAD_CBS and prior to Libgcrypt version 1.3.X GCRYCTL_SET_THREAD_CBS didn't invoke global_init. So the solution in Ubuntu [3] is consistent with the Libgcrypt manual (gcry_check_version must be invoked before any other function in the library, with the exception of the GCRYCTL_SET_THREAD_CBS command) and with the original behavior of the library.

[1] https://code.launchpad.net/~nottheoilrig/ubuntu/quantal/python-gnutls/fix-for-1013798/+merge/154767
  [2] https://bugs.launchpad.net/bugs/423252
  [3] https://launchpadlibrarian.net/45701569/dif1.txt


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to