[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#8797) improper use of gnutls causes segfault



Full_Name: Lukas K.
Version: 2.4.44+dfsg-5+deb9u1
OS: Debian Stretch
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (2001:7c7:2100:130:b9b5:f8df:7b98:8c2e)


During initialization, libldap sets custom  gnutls mutex functions:
https://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=libraries/libldap/tls_g.c;h=adcb6be04076a91d3a0bf94cf8357f4e51f5b9da;hb=HEAD#l113

PAM uses libldap via dlopen and unloads it when it's done, but openldap doesn't
undo gnutls_global_set_mutex, so any further calls to locking functions inside
openldap will segfault since these function pointers now point to nowhere since
openldap is unloaded.

I encountered this issue in cups since cups uses gnutls itself for the web
interface and segfaults when it uses gnutls after libldap.