--BI5RvnYi6R4T2M87
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
vorlon@debian.org 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?
--
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/
slangasek@ubuntu.com vorlon@debian.org
--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--