[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Bug in servers/slapd/filterentry.c



This patch has been applied to the -devel branch...

Thanks!  Kurt

At 10:00 AM 10/1/98 -0500, MCGARRAHAN, KENNETH L wrote:
>The test_ava_filter() routine in servers/slapd/filterentry.c contains a bug
>which results in invalid results being returned when using the ">=" and "<="
>search filter operators. In both cases, the code ignores entries which
>compare equal to the filter object. 
>
>The obvious solution to this problem is adding the equality operator to the
>test of the return value of the value_cmp() call. The following patch
>(against openldap-devel) implements this logic: 
>
>*** ldap/servers/slapd/filterentry.c    Thu Aug 20 23:33:42 1998
>--- dev/oldap/servers/slapd/filterentry.c       Fri Sep 25 14:43:25 1998
>***************
>*** 136,148 ****
>                        break;
>
>                case LDAP_FILTER_GE:
>!                       if ( rc > 0 ) {
>                                return( 0 );
>                        }
>                        break;
>
>                case LDAP_FILTER_LE:
>!                       if ( rc < 0 ) {
>                                return( 0 );
>                        }
>                        break;
>--- 136,148 ----
>                        break;
>
>                case LDAP_FILTER_GE:
>!                       if ( rc >= 0 ) {
>                                return( 0 );
>                        }
>                        break;
>
>                case LDAP_FILTER_LE:
>!                       if ( rc <= 0 ) {
>                                return( 0 );
>                        }
>                        break;
>
>Comments? Suggestions? Alternative solutions?
>
>Ken McGarrahan
>Southwestern Bell Telephone
>*	Phone: (314) 235-3160
>*	E-Mail: km4155@sbc.com
>
>