[PATCH] Fix shared object clashes - read_data()

Uri Simchoni uri at samba.org
Thu Jan 21 09:42:56 UTC 2016


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

-------------- next part --------------
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'
 	)
 
 
-- 
2.4.3



More information about the samba-technical mailing list