set result entry identifier earlier, i.e. before a continue for the same level can happen. otherwise will always get the same value and we end up in an infinite loop

This commit is contained in:
Arthur Schiwon 2014-05-16 18:03:15 +02:00
parent 419e0354d5
commit 9f405339d6

View file

@ -909,6 +909,7 @@ class Wizard extends LDAPUtility {
if(!$this->ldap->isResource($entry)) {
continue 2;
}
$rr = $entry; //will be expected by nextEntry next round
$attributes = $this->ldap->getAttributes($cr, $entry);
$dn = $this->ldap->getDN($cr, $entry);
if($dn === false || in_array($dn, $dnRead)) {
@ -922,7 +923,6 @@ class Wizard extends LDAPUtility {
$foundItems = array_merge($foundItems, $newItems);
$this->resultCache[$dn][$attr] = $newItems;
$dnRead[] = $dn;
$rr = $entry; //will be expected by nextEntry next round
} while(($state === self::LRESULT_PROCESSED_SKIP
|| $this->ldap->isResource($entry))
&& ($dnReadLimit === 0 || $dnReadCount < $dnReadLimit));
@ -1088,4 +1088,4 @@ class Wizard extends LDAPUtility {
}
}
}