--BI5RvnYi6R4T2M87
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sun, Jun 29, 2008 at 11:49:37AM -0700, Howard Chu wrote:
> [EMAIL PROTECTED] wrote:
>> This bug is marked as fixed in 2.4.8, but I still see the same problem in
>> the test suite in 2.4.10.  Trying to start slapd with back-meta gives:

>> /home/devel/openldap/build-area/openldap2.3-2.4.10/debian/build/servers/slapd/.libs/lt-slapd:
>>  symbol lookup error: ../servers/slapd/back-meta/.libs/back_meta-2.4.so.2: 
>> undefined symbol: slap_idassert_parse_cf

>> Is this a regression since 2.4.8?

> Looks more like an incomplete fix. The functions in question haven't 
> changed since 2006. Since we're not using a hacked libltdl the problem 
> you're seeing doesn't show up here. I guess you should have tested this 
> sooner...

Well, given that back_meta has been broken for an indeterminate period of
time on systems whose libltdl doesn't use the insane RTLD_GLOBAL option :),
the Debian userbase for that backend is roughly nonexistent which means
verifying the fix was not a high priority (except that I would like to be
able to turn on 'make test' during our builds).  Is the correct fix to add
this function to the ldap_extra_t struct, as in the attached patch?

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
[EMAIL PROTECTED]                                     [EMAIL PROTECTED]

--BI5RvnYi6R4T2M87
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=no_backend_inter-linking

Index: trunk/servers/slapd/back-ldap/back-ldap.h
===================================================================
--- trunk.orig/servers/slapd/back-ldap/back-ldap.h
+++ trunk/servers/slapd/back-ldap/back-ldap.h
@@ -428,6 +428,8 @@
        int (*proxy_authz_ctrl)( Operation *op, SlapReply *rs, struct berval 
*bound_ndn,
                int version, slap_idassert_t *si, LDAPControl   *ctrl );
        int (*controls_free)( Operation *op, SlapReply *rs, LDAPControl 
***pctrls );
+       int (*idassert_parse_cf)( const char *fname, int lineno, int argc,
+               char *argv[], slap_idassert_t *si );
 } ldap_extra_t;
 
 LDAP_END_DECL
Index: trunk/servers/slapd/back-meta/config.c
===================================================================
--- trunk.orig/servers/slapd/back-meta/config.c
+++ trunk/servers/slapd/back-meta/config.c
@@ -1089,7 +1089,7 @@
                        }
                        cargv[ 2 ] = binddn;
 
-                       rc = slap_idassert_parse_cf( fname, lineno, cargc, 
cargv, &mi->mi_targets[ mi->mi_ntargets - 1 ]->mt_idassert );
+                       rc = mi->mi_ldap_extra->idassert_parse_cf( fname, 
lineno, cargc, cargv, &mi->mi_targets[ mi->mi_ntargets - 1 ]->mt_idassert );
                        if ( rc == 0 ) {
                                struct berval   bv;
 
@@ -1159,7 +1159,7 @@
                        return 1;
                }
 
-               return slap_idassert_parse_cf( fname, lineno, argc, argv, 
&mi->mi_targets[ mi->mi_ntargets - 1 ]->mt_idassert );
+               return mi->mi_ldap_extra->idassert_parse_cf( fname, lineno, 
argc, argv, &mi->mi_targets[ mi->mi_ntargets - 1 ]->mt_idassert );
 
        /* idassert-authzFrom */
        } else if ( strcasecmp( argv[ 0 ], "idassert-authzFrom" ) == 0 ) {
Index: trunk/servers/slapd/back-ldap/init.c
===================================================================
--- trunk.orig/servers/slapd/back-ldap/init.c
+++ trunk/servers/slapd/back-ldap/init.c
@@ -34,7 +34,8 @@
 
 static const ldap_extra_t ldap_extra = {
        ldap_back_proxy_authz_ctrl,
-       ldap_back_controls_free
+       ldap_back_controls_free,
+       slap_idassert_parse_cf
 };
 
 int

--BI5RvnYi6R4T2M87--


Reply via email to