[PATCH] Fix shared object clashes - read_data()

Alexander Bokovoy ab at samba.org
Thu Jan 21 10:39:26 UTC 2016


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?

-- 
/ Alexander Bokovoy



More information about the samba-technical mailing list