Author: jra
Date: 2006-06-29 18:01:25 +0000 (Thu, 29 Jun 2006)
New Revision: 16687

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

Log:
Fix bugs #3901, #3902, #3903 reported by [EMAIL PROTECTED]
Jeremy

Modified:
   branches/SAMBA_3_0/source/lib/smbldap.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_misc.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_user.c


Changeset:
Modified: branches/SAMBA_3_0/source/lib/smbldap.c
===================================================================
--- branches/SAMBA_3_0/source/lib/smbldap.c     2006-06-29 18:01:20 UTC (rev 
16686)
+++ branches/SAMBA_3_0/source/lib/smbldap.c     2006-06-29 18:01:25 UTC (rev 
16687)
@@ -325,7 +325,7 @@
                return NULL;
        }
 
-       if (pull_utf8_talloc(mem_ctx, &result, values[0]) < 0) {
+       if (pull_utf8_talloc(mem_ctx, &result, values[0]) == (size_t)-1) {
                DEBUG(10, ("pull_utf8_talloc failed\n"));
                ldap_value_free(values);
                return NULL;

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_misc.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_misc.c  2006-06-29 18:01:20 UTC 
(rev 16686)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_misc.c  2006-06-29 18:01:25 UTC 
(rev 16687)
@@ -124,6 +124,12 @@
                                                  &num_domains, &names,
                                                  &alt_names, &sids);
 
+       if (!NT_STATUS_IS_OK(result)) {
+               DEBUG(3, ("winbindd_dual_list_trusted_domains: trusted_domains 
returned %s\n",
+                       nt_errstr(result) ));
+               num_domains = 0;
+       }
+
        extra_data = talloc_strdup(state->mem_ctx, "");
 
        if (num_domains > 0)

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_user.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_user.c  2006-06-29 18:01:20 UTC 
(rev 16686)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_user.c  2006-06-29 18:01:25 UTC 
(rev 16687)
@@ -524,7 +524,6 @@
        uint32 num_entries;
        WINBIND_USERINFO *info;
        struct getpwent_user *name_list = NULL;
-       BOOL result = False;
        struct winbindd_domain *domain;
        struct winbindd_methods *methods;
        unsigned int i;
@@ -552,12 +551,18 @@
        status = methods->query_user_list(domain, mem_ctx, &num_entries, 
                                          &info);
                
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(10,("get_sam_user_entries: query_user_list failed with 
%s\n",
+                       nt_errstr(status) ));
+               return False;
+       }
+
        if (num_entries) {
                name_list = SMB_REALLOC_ARRAY(name_list, struct getpwent_user, 
ent->num_sam_entries + num_entries);
                
                if (!name_list) {
                        DEBUG(0,("get_sam_user_entries realloc failed.\n"));
-                       goto done;
+                       return False;
                }
        }
 
@@ -602,11 +607,7 @@
        
        ent->sam_entries = name_list;
        ent->sam_entry_index = 0;
-       result = ent->num_sam_entries > 0;
-
- done:
-
-       return result;
+       return ent->num_sam_entries > 0;
 }
 
 /* Fetch next passwd entry from ntdom database */
@@ -757,6 +758,10 @@
                status = methods->query_user_list(domain, state->mem_ctx, 
                                                  &num_entries, &info);
 
+               if (!NT_STATUS_IS_OK(status)) {
+                       continue;
+               }
+
                if (num_entries == 0)
                        continue;
 

Reply via email to