[Bug 1891551] Re: (Ubuntu 16.04) automount 5.1.1 hardcoding libraries
Christian Ehrhardt
1891551 at bugs.launchpad.net
Mon Aug 17 15:46:56 UTC 2020
Also LD_LIBRARY_PATH in general works here:
root at g:~# export LD_LIBRARY_PATH=/mnt/test/; lddtree /usr/sbin/automount;
automount => /usr/sbin/automount (interpreter => /lib64/ld-linux-x86-64.so.2)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
libxml2.so.2 => /mnt/test/libxml2.so.2
libicuuc.so.67 => /lib/x86_64-linux-gnu/libicuuc.so.67
libicudata.so.67 => /lib/x86_64-linux-gnu/libicudata.so.67
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
Might it be that you you need a different library to insert here?
Also the code has a bunch of dlopen calls
daemon/module.c:87: if (!(dh = dlopen(fnbuf, RTLD_NOW))) {
daemon/module.c:165: if (!(dh = dlopen(fnbuf, RTLD_NOW))) {
daemon/module.c:241: if (!(dh = dlopen(fnbuf, RTLD_NOW))) {
daemon/automount.c:2386: void *dh_xml2 = dlopen("libxml2.so", RTLD_NOW);
daemon/automount.c:2388: dh_xml2 = dlopen("libxml2.so.2", RTLD_NOW);
daemon/automount.c:2393: void *dh_tirpc = dlopen("libtirpc.so", RTLD_NOW);
daemon/automount.c:2395: dh_tirpc = dlopen("libtirpc.so.1", RTLD_NOW);
modules/lookup_sss.c:95: dh = dlopen(dlbuf, RTLD_LAZY);
Those might behave differently - are you after those or after the
"normal" ld.so activity you see in the lddtree output above?
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to autofs in Ubuntu.
https://bugs.launchpad.net/bugs/1891551
Title:
(Ubuntu 16.04) automount 5.1.1 hardcoding libraries
Status in autofs package in Ubuntu:
Confirmed
Bug description:
Unable to use ld.conf methods (LD_LIBRARY_PATH, LD_PRELOAD) to locate
modules.
Context: HP ThinPro 7.1 Service Pack 8 (latest) is still based on Ubuntu 16.04 LTS
Use Case: Thin Client -- HP will not allow Customers to install anything to OS
partition, e.g. to /usr. automount installed from Canonical's repository but to
/usr on a flash drive e.g. /media/GenericFlash_sdb1/usr
the string: /usr/lib/x86_64-linux-gnu/autofs appears in the binary. automount
does not search /media/GenericFlash_sdb1/usr defined with LD_LIBRARY_PATH.
Source Package:
* http://archive.ubuntu.com/ubuntu/pool/main/a/autofs/autofs_5.1.1.orig.tar.gz
* http://archive.ubuntu.com/ubuntu/pool/main/a/autofs/autofs_5.1.1-1ubuntu3.debian.tar.xz
Release:
Description: ThinPro 7.1.0
Release: 7.1.0
Binary Package:
Package: autofs (5.1.1-1ubuntu3) autofs_5.1.1-1ubuntu3_amd64.deb
* http://de.archive.ubuntu.com/ubuntu/pool/main/a/autofs/autofs_5.1.1-1ubuntu3_amd64.deb
Expected Behaviour:
Setting LD_LIBRARY_PATH=/media/GenericFlash_sdb1/usr/lib/x86_64-linux-gnu/autofs
overriding compiled location of modules so that automount works correctly.
Actual Behaviour:
automount fails to find its modules:
Code:
# /media/GenericFlash_sdb1/usr/sbin/automount -V
Linux automount version 5.1.1
Directories:
config dir: /etc/default
maps dir: /etc
modules dir: /usr/lib/x86_64-linux-gnu/autofs
Compile options:
ENABLE_FORCED_SHUTDOWN ENABLE_IGNORE_BUSY_MOUNTS WITH_HESIOD
WITH_LDAP WITH_SASL LIBXML2_WORKAROUND
# ldd /media/GenericFlash_sdb1/usr/sbin/automount
linux-vdso.so.1 => (0x00007ffc51113000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1729ec8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1729cc0000)
libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f1729900000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1729530000)
/lib64/ld-linux-x86-64.so.2 (0x00007f172a330000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007f1729198000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1728f78000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f1728d50000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1728a40000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007f1726f88000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1726c00000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f17269e8000)
# LD_DEBUG=files LD_PRELOAD=/media/GenericFlash_sdb1/usr/lib/x86_64-linux-gnu/autofs/lookup_file.so /media/GenericFlash_sdb1/usr/sbin/automount -d -v -f
9852: WARNING: Unsupported flag value(s) of 0x8000000 in DT_FLAGS_1.
9852: file=/media/GenericFlash_sdb1/usr/lib/x86_64-linux-gnu/autofs/lookup_file.so [0]; needed by /media/GenericFlash_sdb1/usr/sbin/automount [0]
9852: file=/media/GenericFlash_sdb1/usr/lib/x86_64-linux-gnu/autofs/lookup_file.so [0]; generating link map
9852: dynamic: 0x00007f1737094d18 base: 0x00007f1736e68000 size: 0x000000000022f870
9852: entry: 0x00007f1736e70f00 phdr: 0x00007f1736e68040 phnum: 7
9852:
9852: file=libpthread.so.0 [0]; needed by /media/GenericFlash_sdb1/usr/sbin/automount [0]
9852: file=libpthread.so.0 [0]; generating link map
9852: dynamic: 0x00007f1736e5fd50 base: 0x00007f1736c48000 size: 0x000000000021c428
9852: entry: 0x00007f1736c4e0b0 phdr: 0x00007f1736c48040 phnum: 9
9852:
9852: file=libdl.so.2 [0]; needed by /media/GenericFlash_sdb1/usr/sbin/automount [0]
9852: file=libdl.so.2 [0]; generating link map
9852: dynamic: 0x00007f1736c42d88 base: 0x00007f1736a40000 size: 0x00000000002030f0
9852: entry: 0x00007f1736a40da0 phdr: 0x00007f1736a40040 phnum: 7
9852:
9852: file=libxml2.so.2 [0]; needed by /media/GenericFlash_sdb1/usr/sbin/automount [0]
9852: file=libxml2.so.2 [0]; generating link map
9852: dynamic: 0x00007f1736a37808 base: 0x00007f1736680000 size: 0x00000000003ba9b8
9852: entry: 0x00007f17366ad6f0 phdr: 0x00007f1736680040 phnum: 7
9852:
9852: file=libc.so.6 [0]; needed by /media/GenericFlash_sdb1/usr/sbin/automount [0]
9852: file=libc.so.6 [0]; generating link map
9852: dynamic: 0x00007f1736673ba0 base: 0x00007f17362b0000 size: 0x00000000003c99a0
9852: entry: 0x00007f17362d0950 phdr: 0x00007f17362b0040 phnum: 10
9852:
9852: file=libicuuc.so.55 [0]; needed by /usr/lib/x86_64-linux-gnu/libxml2.so.2 [0]
9852: file=libicuuc.so.55 [0]; generating link map
9852: dynamic: 0x00007f17362a6ae0 base: 0x00007f1735f18000 size: 0x0000000000393b20
9852: entry: 0x00007f1735f6d4d0 phdr: 0x00007f1735f18040 phnum: 7
9852:
9852: file=libz.so.1 [0]; needed by /usr/lib/x86_64-linux-gnu/libxml2.so.2 [0]
9852: file=libz.so.1 [0]; generating link map
9852: dynamic: 0x00007f1735f10dd0 base: 0x00007f1735cf8000 size: 0x0000000000219128
9852: entry: 0x00007f1735cf9db0 phdr: 0x00007f1735cf8040 phnum: 7
9852:
9852: file=liblzma.so.5 [0]; needed by /usr/lib/x86_64-linux-gnu/libxml2.so.2 [0]
9852: file=liblzma.so.5 [0]; generating link map
9852: dynamic: 0x00007f1735cf1dc0 base: 0x00007f1735ad0000 size: 0x0000000000222078
9852: entry: 0x00007f1735ad2090 phdr: 0x00007f1735ad0040 phnum: 7
9852:
9852: file=libm.so.6 [0]; needed by /usr/lib/x86_64-linux-gnu/libxml2.so.2 [0]
9852: file=libm.so.6 [0]; generating link map
9852: dynamic: 0x00007f1735ac7d88 base: 0x00007f17357c0000 size: 0x00000000003080f8
9852: entry: 0x00007f17357c5600 phdr: 0x00007f17357c0040 phnum: 7
9852:
9852: file=libicudata.so.55 [0]; needed by /usr/lib/x86_64-linux-gnu/libicuuc.so.55 [0]
9852: file=libicudata.so.55 [0]; generating link map
9852: dynamic: 0x00007f17357bddf0 base: 0x00007f1733d08000 size: 0x0000000001ab6010
9852: entry: 0x00007f1733d08530 phdr: 0x00007f1733d08040 phnum: 6
9852:
9852: file=libstdc++.so.6 [0]; needed by /usr/lib/x86_64-linux-gnu/libicuuc.so.55 [0]
9852: file=libstdc++.so.6 [0]; generating link map
9852: dynamic: 0x00007f1733cfad50 base: 0x00007f1733980000 size: 0x0000000000381400
9852: entry: 0x00007f1733a09d20 phdr: 0x00007f1733980040 phnum: 8
9852:
9852: file=libgcc_s.so.1 [0]; needed by /usr/lib/x86_64-linux-gnu/libicuuc.so.55 [0]
9852: file=libgcc_s.so.1 [0]; generating link map
9852: dynamic: 0x00007f173397d2b0 base: 0x00007f1733768000 size: 0x0000000000215910
9852: entry: 0x00007f173376aa70 phdr: 0x00007f1733768040 phnum: 6
9852:
9852: calling init: /lib/x86_64-linux-gnu/libpthread.so.0
9852: calling init: /lib/x86_64-linux-gnu/libc.so.6
9852: calling init: /lib/x86_64-linux-gnu/libgcc_s.so.1
9852: calling init: /lib/x86_64-linux-gnu/libm.so.6
9852: calling init: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
9852: calling init: /usr/lib/x86_64-linux-gnu/libicudata.so.55
9852: calling init: /lib/x86_64-linux-gnu/libdl.so.2
9852: calling init: /lib/x86_64-linux-gnu/liblzma.so.5
9852: calling init: /lib/x86_64-linux-gnu/libz.so.1
9852: calling init: /usr/lib/x86_64-linux-gnu/libicuuc.so.55
9852: calling init: /usr/lib/x86_64-linux-gnu/libxml2.so.2
9852: calling init: /media/GenericFlash_sdb1/usr/lib/x86_64-linux-gnu/autofs/lookup_file.so
9852: initialize program: /media/GenericFlash_sdb1/usr/sbin/automount
9852: transferring control: /media/GenericFlash_sdb1/usr/sbin/automount
Starting automounter version 5.1.1, master map /etc/auto.master
using kernel protocol version 5.05
9852: file=libxml2.so [0]; dynamically loaded by /media/GenericFlash_sdb1/usr/sbin/automount [0]
9852: opening file=/usr/lib/x86_64-linux-gnu/libxml2.so.2 [0]; direct_opencount=1
lookup_nss_read_master: reading master file /etc/auto.master
9852: file=/usr/lib/x86_64-linux-gnu/autofs/lookup_file.so [0]; dynamically loaded by /media/GenericFlash_sdb1/usr/sbin/automount [0]
open_lookup:93: cannot open lookup module file (/usr/lib/x86_64-linux-gnu/autofs/lookup_file.so:
cannot open shared object file: No such file or directory)
no mounts in table
Resolution Requested:
If this cannot be accepted as a bug, pointers to a work around given restrictions placed by HP and that all Linux machines here are thin clients and not development environments.
Thank you.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/autofs/+bug/1891551/+subscriptions
More information about the foundations-bugs
mailing list