Author: idra
Date: 2007-06-09 18:18:24 +0000 (Sat, 09 Jun 2007)
New Revision: 23404

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

Log:

Fix wrong (and missing) action on error condition in ldap reply evaluation loop
Fixes one of the segfaults in bug #4667


Modified:
   branches/SAMBA_3_0/source/nsswitch/idmap_ldap.c
   branches/SAMBA_3_0_25/source/nsswitch/idmap_ldap.c
   branches/SAMBA_3_0_26/source/nsswitch/idmap_ldap.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/idmap_ldap.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/idmap_ldap.c     2007-06-09 07:17:24 UTC 
(rev 23403)
+++ branches/SAMBA_3_0/source/nsswitch/idmap_ldap.c     2007-06-09 18:18:24 UTC 
(rev 23404)
@@ -965,7 +965,7 @@
                }
                if ( ! entry) {
                        DEBUG(2, ("ERROR: Unable to fetch ldap entries from 
results\n"));
-                       continue;
+                       break;
                }
 
                /* first check if the SID is present */
@@ -1180,6 +1180,10 @@
                } else { /* following ones */
                        entry = 
ldap_next_entry(ctx->smbldap_state->ldap_struct, entry);
                }
+               if ( ! entry) {
+                       DEBUG(2, ("ERROR: Unable to fetch ldap entries from 
results\n"));
+                       break;
+               }
 
                /* first check if the SID is present */
                sidstr = smbldap_talloc_single_attribute(

Modified: branches/SAMBA_3_0_25/source/nsswitch/idmap_ldap.c
===================================================================
--- branches/SAMBA_3_0_25/source/nsswitch/idmap_ldap.c  2007-06-09 07:17:24 UTC 
(rev 23403)
+++ branches/SAMBA_3_0_25/source/nsswitch/idmap_ldap.c  2007-06-09 18:18:24 UTC 
(rev 23404)
@@ -962,7 +962,7 @@
                }
                if ( ! entry) {
                        DEBUG(2, ("ERROR: Unable to fetch ldap entries from 
results\n"));
-                       continue;
+                       break;
                }
 
                /* first check if the SID is present */
@@ -1177,6 +1177,10 @@
                } else { /* following ones */
                        entry = 
ldap_next_entry(ctx->smbldap_state->ldap_struct, entry);
                }
+               if ( ! entry) {
+                       DEBUG(2, ("ERROR: Unable to fetch ldap entries from 
results\n"));
+                       break;
+               }
 
                /* first check if the SID is present */
                sidstr = smbldap_talloc_single_attribute(

Modified: branches/SAMBA_3_0_26/source/nsswitch/idmap_ldap.c
===================================================================
--- branches/SAMBA_3_0_26/source/nsswitch/idmap_ldap.c  2007-06-09 07:17:24 UTC 
(rev 23403)
+++ branches/SAMBA_3_0_26/source/nsswitch/idmap_ldap.c  2007-06-09 18:18:24 UTC 
(rev 23404)
@@ -962,7 +962,7 @@
                }
                if ( ! entry) {
                        DEBUG(2, ("ERROR: Unable to fetch ldap entries from 
results\n"));
-                       continue;
+                       break;
                }
 
                /* first check if the SID is present */
@@ -1177,6 +1177,10 @@
                } else { /* following ones */
                        entry = 
ldap_next_entry(ctx->smbldap_state->ldap_struct, entry);
                }
+               if ( ! entry) {
+                       DEBUG(2, ("ERROR: Unable to fetch ldap entries from 
results\n"));
+                       break;
+               }
 
                /* first check if the SID is present */
                sidstr = smbldap_talloc_single_attribute(

Reply via email to