]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/sasl.c
Merge remote branch 'origin/mdb.master'
[openldap] / libraries / libldap / sasl.c
index 61ae706b1066852e362f3039db2018493c5a7625..fc995bee449dee8acf63378e509fc3bedc3222bc 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2010 The OpenLDAP Foundation.
+ * Copyright 1998-2012 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -451,20 +451,23 @@ ldap_sasl_interactive_bind(
 #endif
                
        if( mechs == NULL || *mechs == '\0' ) {
+               /* FIXME: this needs to be asynchronous too;
+                * perhaps NULL should be disallowed for async usage?
+                */
                rc = ldap_pvt_sasl_getmechs( ld, &smechs );
                if( rc != LDAP_SUCCESS ) {
                        goto done;
                }
 
                Debug( LDAP_DEBUG_TRACE,
-                       "ldap_sasl_interactive_bind_s: server supports: %s\n",
+                       "ldap_sasl_interactive_bind: server supports: %s\n",
                        smechs, 0, 0 );
 
                mechs = smechs;
 
        } else {
                Debug( LDAP_DEBUG_TRACE,
-                       "ldap_sasl_interactive_bind_s: user selected: %s\n",
+                       "ldap_sasl_interactive_bind: user selected: %s\n",
                        mechs, 0, 0 );
        }
        }
@@ -509,6 +512,8 @@ ldap_sasl_interactive_bind_s(
                        serverControls, clientControls,
                        flags, interact, defaults, result, &rmech, &msgid );
 
+               ldap_msgfree( result );
+
                if ( rc != LDAP_SASL_BIND_IN_PROGRESS )
                        break;