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

(ITS#5757) back-null returns an error when any critical extension is specified



Full_Name: Jonathan Clarke
Version: RE24 (and 2.3.x)
OS: irrelevant
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (213.41.243.192)


Hi folks,

Considering a setup like the following:
8<------------------------------------------------
database        ldap
suffix          "dc=remote,o=base"
subordinate
uri ldap://ldap.remote.com
overlay rwm
rwm-suffixmassage dc=remote,o=base dc=remote
 
database        null
suffix          "o=base"
overlay         glue
8<------------------------------------------------

(I realize this is of course completely useless on it's own, but associated to
other backends is quite useful - this simple example is to explain this bug
report only)

A search of scope sub on o=base will be passed to back-ldap, performed on the
remote server and the results returned. If a non-critical control is passed with
a search, back-null will pass it to back-ldap, and to the remote server, with
success, returning results as expected with the control.

However, if a critical control is passed in the same way, back-null returns the
"12 Critical extension is unavailable" error, since back-null doesn't declare
support for any controls.

According to the slapd-null man page for back-null: "Searches return success but
no entries".

The following patch changes this so that back-null declares controls in the same
way back-ldap and back-meta do, and passes critical controls on to any
subordinate databases. In case they don't support the control, success is
returned anyway, as the man page specifies.

The patch: http://milopita.phillipoux.net/jonathan-clarke-20081020.patch
(this a simple copy and paste from back-ldap/back-meta)