Author: metze
Date: 2005-08-07 02:53:27 +0000 (Sun, 07 Aug 2005)
New Revision: 9170

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9170

Log:
fix crash bug

metze
Modified:
   branches/SAMBA_4_0/source/kdc/hdb-ldb.c


Changeset:
Modified: branches/SAMBA_4_0/source/kdc/hdb-ldb.c
===================================================================
--- branches/SAMBA_4_0/source/kdc/hdb-ldb.c     2005-08-07 01:25:25 UTC (rev 
9169)
+++ branches/SAMBA_4_0/source/kdc/hdb-ldb.c     2005-08-07 02:53:27 UTC (rev 
9170)
@@ -461,7 +461,7 @@
        char *princ_str_talloc;
        char *short_princ;
 
-       struct ldb_message **msg;
+       struct ldb_message **msg = NULL;
 
        /* Structure assignment, so we don't mess with the source parameter */
        struct Principal princ = *principal;
@@ -521,7 +521,6 @@
        count = ldb_search(ldb_ctx, realm_dn, LDB_SCOPE_SUBTREE, filter, 
                           princ_attrs, &msg);
 
-       *pmsg = talloc_steal(mem_ctx, msg);
        if (count < 1) {
                krb5_warnx(context, "ldb_search: basedn: '%s' filter: '%s' 
failed: %d", 
                           realm_dn, filter, count);
@@ -529,12 +528,14 @@
                                      realm_dn, filter, count);
                return HDB_ERR_NOENTRY;
        } else if (count > 1) {
+               talloc_free(msg);
                krb5_warnx(context, "ldb_search: basedn: '%s' filter: '%s' more 
than 1 entry: %d", 
                           realm_dn, filter, count);
                krb5_set_error_string(context, "ldb_search: basedn: '%s' 
filter: '%s' more than 1 entry: %d", 
                                      realm_dn, filter, count);
                return HDB_ERR_NOENTRY;
        }
+       *pmsg = talloc_steal(mem_ctx, msg);
        return 0;
 }
 

Reply via email to