#47521 Complex filter in a search request doen't work as expected.
Closed: wontfix None Opened 8 years ago by jyotidas81.


Please find below the reproducer details with the examples.

Complex filter example:

"(&(&(uid=test1)(cn=t1 est))(&(gidnumber=20))(uidnumber=2558)(&(sn=est)))"

In the above filter as you can see, the "uidnumber=2558" sub filter is not associated with ant Boolean operator ( AND or OR or NOT) which results in missing this sub filter from the filter after decoding process. The error log details are given below.

[23/Sep/2013:04:42:58 +051800] index_subsys_assign_filter_decoders - before: (&(&(uid=test1)(cn=t1 est))(&(gidNumber=20))(uidNumber=2558)(&(sn=est)))

The index subsystem takes the complex filter as argument for the decoding.
[23/Sep/2013:04:42:58 +051800] - slapi_filter_free type 0xA0
[23/Sep/2013:04:42:58 +051800] - slapi_filter_free type 0xA0
[23/Sep/2013:04:42:58 +051800] - slapi_filter_free type 0xA0
[23/Sep/2013:04:42:58 +051800] index_subsys_assign_filter_decoders - after: (&(uid=test1)(cn=t1 est)(gidNumber=20)(sn=est))
After decoding as you can see in the above line, the "uidnumber=2558" is missing which is not going to be considered during the database search.

Here, as the whole of complex filter is preceded by a outer "&" operator, Why the sub filter in this case is being ignored from the search request?.

What version of 389-ds-base are you using?

Replying to [comment:1 rmeggins]:

What version of 389-ds-base are you using?
It's 389-ds-base

$ git merge ticket47521
Updating cafc4eb..c2658c1
ldap/servers/slapd/index_subsystem.c | 5 +++++
1 file changed, 5 insertions(+)
$ git push origin master
Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 897 bytes, done.
Total 6 (delta 4), reused 0 (delta 0)
To ssh://git.fedorahosted.org/git/389/ds.git
cafc4eb..c2658c1 master -> master

Metadata Update from @jyotidas81:
- Issue assigned to lkrispen
- Issue set to the milestone: 1.3.3 - 11/13 (November)

4 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/858

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Fixed)

a year ago

Login to comment on this ticket.