r19309: Split out checks for LDB_SUCCESS from checks for the expected number
authorAndrew Bartlett <abartlet@samba.org>
Mon, 16 Oct 2006 01:20:31 +0000 (01:20 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:21:06 +0000 (14:21 -0500)
of returned entries.

Andrew Bartlett
(This used to be commit 84efd9ecd994b53817dde8c1ad995afb7ebc8192)

source4/libnet/libnet_join.c

index 8112d043f60613131ae9095b6695cbca831f0121..96d9e7f0dedff29bb89af20aa1b834766d038739 100644 (file)
@@ -246,15 +246,23 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J
 
        /* search for the user's record */
        ret = ldb_search(remote_ldb, account_dn, LDB_SCOPE_BASE, 
-                            NULL, attrs, &res);
-       talloc_steal(tmp_ctx, res);
-       if (ret != LDB_SUCCESS || res->count != 1) {
+                        NULL, attrs, &res);
+       if (ret != LDB_SUCCESS) {
                r->out.error_string = talloc_asprintf(r, "ldb_search for %s failed - %s",
                                                      account_dn_str, ldb_errstring(remote_ldb));
                talloc_free(tmp_ctx);
                return NT_STATUS_UNSUCCESSFUL;
        }
 
+       talloc_steal(tmp_ctx, res);
+
+       if (res->count != 1) {
+               r->out.error_string = talloc_asprintf(r, "ldb_search for %s failed - found %d entries",
+                                                     account_dn_str, res->count);
+               talloc_free(tmp_ctx);
+               return NT_STATUS_UNSUCCESSFUL;
+       }
+
        /* If we have a kvno recorded in AD, we need it locally as well */
        kvno = ldb_msg_find_attr_as_uint(res->msgs[0], "msDS-KeyVersionNumber", 0);