Serious Bug in Cyrus/SASL: Intermittent Ldap AUTHFAIL
    Mohan Khurana 
    mkhurana at andrew.cmu.edu
       
    Thu Sep 26 19:56:13 EDT 2002
    
    
  
Lee,
Below, I've included a patch, it basically removes persistance from
saslauthd.  This has fixed the problem for me.  I'm not exactly familiar
with all the code, so I was unable to free the lak config structure, but
this does let you atleast get saslauthd working.  I think there's a
problem with persistance, I'm not exactly sure what it is though.  Any
thoughts?
mohan
*** ../../orig/cyrus-sasl-2.1.7/saslauthd/lak.c Thu Aug  1 15:58:24 2002
--- lak.c       Thu Sep 26 19:42:11 2002
***************
*** 816,821 ****
--- 816,832 ----
                rc = lak_auth_custom(lak, user, realm, password);
        }
+       /* free the lak */
+     if (lak->ld) {
+         if (lak->conf->cache_ttl)
+             ldap_destroy_cache(lak->ld);
+         ldap_unbind_s(lak->ld);
+         lak->ld = NULL;
+     }
+     //lak_free_config(&(lak->conf));
+       free(lak);
+       persistent_lak = NULL;
+
        return rc;
  }
***************
*** 846,851 ****
--- 857,874 ----
        attrs[1] = NULL;
        rc = lak_retrieve(lak, user, realm, (const char **)attrs, &lres);
+
+       /* free the lak */
+       if (lak->ld) {
+         if (lak->conf->cache_ttl)
+             ldap_destroy_cache(lak->ld);
+         ldap_unbind_s(lak->ld);
+         lak->ld = NULL;
+     }
+     lak_free_config(&lak->conf);
+     free(lak);
+     persistent_lak = NULL;
+
        if (rc != LAK_OK) {
                return rc;
        }
    
    
More information about the Info-cyrus
mailing list