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

(ITS#8957)



I reviewed some of the initial discussion about this same issue which 
lead to this fix in version 2.4.26, "Fixed libldap ASYNC TLS setup 
(ITS#6828)", and looked at the code that Ian Puleston suggested should 
be fixed in ldap_int_open_connection. This routine does have the code to 
do what was need for TSL to work but was not called since it received an 
error code of -2 not 0. The -2 simply indicated that this was an 
asynchronous call. I changed the test to call the TSL setup if the 
return code was either 0 or -2. This fixes my issue. Here is my patch.

--- openldap-2.4.47/libraries/libldap/open.c    2018-12-19 
10:57:06.000000000 -0500
+++ openldap-2.4.47.mod/libraries/libldap/open.c    2019-01-26 
18:24:48.000000000 -0500
@@ -440,7 +440,7 @@
  #endif

  #ifdef HAVE_TLS
-    if (rc == 0 && ( ld->ld_options.ldo_tls_mode == LDAP_OPT_X_TLS_HARD ||
+    if ((rc == 0 || rc == -2) && ( ld->ld_options.ldo_tls_mode == 
LDAP_OPT_X_TLS_HARD ||
          strcmp( srv->lud_scheme, "ldaps" ) == 0 ))
      {
          ++conn->lconn_refcnt;    /* avoid premature free */

Thanks,
Vernon