[PATCH] Fix shared object clashes - read_data()

Jeremy Allison jra at samba.org
Thu Jan 21 18:11:49 UTC 2016


On Thu, Jan 21, 2016 at 12:39:26PM +0200, Alexander Bokovoy wrote:
> On Thu, 21 Jan 2016, Uri Simchoni wrote:
> > Hi,
> > 
> > The attached patch fixes a panic in ldbsearch, when built on an up-to-date
> > FC22 machine.
> > This seems to be related to recent changes in samba (more reliance on
> > gnutls), not to Fedora upgrades, so no BUG: report.
> > 
> > It seems that libsamba-util.so.0 is a direct dependency of
> > libldb_module_acl.so (according to the linux loader, not sure if we have a
> > script or a test or build option that checks this automatically...), so
> > adding the dependency is, I hope, correct.
> > 
> > The reason it's **needed** on the FC22 system, and in the order specified by
> > the patch, is that on that system, the system-supplied gnutls requires
> > libtspi.so.1, which exports a read_data() function. read_data() is also
> > exported by the private libsys_rw-samba4.so library. Adding libsamba-util
> > before the kerberos stuff (and with libsamba-util depending on libgenrand
> > which depends on libsys_rw) makes sure we get the right read_data() on
> > linux.
> > 
> > The command that triggers the panic is:
> > ./bin/ldbsearch -H ldap://localdc -UAdministrator%locDCpass1 -s base -b
> > "cn=RID Set,cn=LOCALDC,ou=domain controllers,DC=SAMBA,DC=EXAMPLE,DC=COM"
> > rIDAllocationPool
> > 
> > I also suppose that having a shared library with read_data() in it is asking
> > for trouble (and the linux loader doesn't seem to support the notion of
> > private shared libs, so the fact that it's private doesn't really help
> > here).
> > 
> > Thanks,
> > Uri
> > 
> 
> > From 0c827f531cbc4d8b5c932e107fd500111630226c Mon Sep 17 00:00:00 2001
> > From: Uri Simchoni <uri at samba.org>
> > Date: Thu, 21 Jan 2016 11:14:36 +0200
> > Subject: [PATCH] build: fix ldbsearch panic on FC22
> > 
> > add dependency that fixes ldbsearch panic due to conflict -
> > function read_data() is implemented both by libtspi.so.1, which
> > is a dependency of gnutls on FC22, and by an internal samba
> > shared lib.
> > 
> > Signed-off-by: Uri Simchoni <uri at samba.org>
> > ---
> >  source4/dsdb/samdb/ldb_modules/wscript_build_server | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/source4/dsdb/samdb/ldb_modules/wscript_build_server b/source4/dsdb/samdb/ldb_modules/wscript_build_server
> > index b54d27f..8fa9939 100755
> > --- a/source4/dsdb/samdb/ldb_modules/wscript_build_server
> > +++ b/source4/dsdb/samdb/ldb_modules/wscript_build_server
> > @@ -325,7 +325,7 @@ bld.SAMBA_MODULE('ldb_acl',
> >  	init_function='ldb_acl_module_init',
> >  	module_init_name='ldb_init_module',
> >  	internal_module=False,
> > -	deps='talloc samba-security samdb DSDB_MODULE_HELPERS krb5samba'
> > +	deps='talloc samba-util samba-security samdb DSDB_MODULE_HELPERS krb5samba'
> >  	)
> Can we rename read_data to something more unique?

Nah, we've been using read_data() forever (longer than
gnutls has been in existence :-).

> / Alexander Bokovoy
> 



More information about the samba-technical mailing list