diff options
-rw-r--r-- | ldap/servers/slapd/opshared.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/ldap/servers/slapd/opshared.c b/ldap/servers/slapd/opshared.c index e07888c0..d06dd2da 100644 --- a/ldap/servers/slapd/opshared.c +++ b/ldap/servers/slapd/opshared.c @@ -1370,12 +1370,14 @@ compute_limits (Slapi_PBlock *pb) } } - if ( requested_timelimit == 0 ) { - timelimit = ( max_timelimit == -1 ) ? -1 : max_timelimit; + if ( isroot ) { + timelimit = max_timelimit = -1; /* no limit */ + } else if ( requested_timelimit == 0 ) { + timelimit = ( max_timelimit == -1 ) ? -1 : max_timelimit; } else if ( max_timelimit == -1 || requested_timelimit < max_timelimit ) { - timelimit = requested_timelimit; + timelimit = requested_timelimit; } else { - timelimit = max_timelimit; + timelimit = max_timelimit; } set_timelimit: @@ -1399,12 +1401,14 @@ compute_limits (Slapi_PBlock *pb) } } - if ( requested_sizelimit == 0 ) { - sizelimit = ( max_sizelimit == -1 ) ? -1 : max_sizelimit; + if ( isroot ) { + sizelimit = max_sizelimit = -1; + } else if ( requested_sizelimit == 0 ) { + sizelimit = ( max_sizelimit == -1 ) ? -1 : max_sizelimit; } else if ( max_sizelimit == -1 || requested_sizelimit < max_sizelimit ) { - sizelimit = requested_sizelimit; + sizelimit = requested_sizelimit; } else { - sizelimit = max_sizelimit; + sizelimit = max_sizelimit; } slapi_pblock_set(pb, SLAPI_SEARCH_SIZELIMIT, &sizelimit); |