mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-06 09:21:00 +01:00

Debian and Ubuntu have releases coming out with usr-merge in place. For
these systems, /bin and /sbin are symlinks to their respective /usr
directories. This breaks a few tests in the python utils and in the
regression tests. This patch series fixes them, mostly by performing
realpath() calls when necessary. For the ptrace regression test,
it copies the called /bin/true binary into the created temporary
directory and executes it from there. (Good for other reasons, too.)
(cherry picked from commit b4ab8476e4
)
Signed-off-by: Steve Beattie <steve.beattie@canonical.com>
Acked-by: John Johansen <john.johansen@canonical.com>
MR: https://gitlab.com/apparmor/apparmor/merge_requests/331
60 lines
2.5 KiB
Python
Executable file
60 lines
2.5 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
import sys
|
|
|
|
if len(sys.argv) != 2:
|
|
raise Exception('wrong number of arguments in fake_ldd')
|
|
|
|
if sys.argv[1] in ['/AATest/bin/bash', '/bin/bash', '/usr/bin/bash']:
|
|
print(' linux-vdso.so.1 (0x00007ffcf97f4000)')
|
|
print(' libreadline.so.6 => /AATest/lib64/libreadline.so.6 (0x00007f2c41324000)')
|
|
print(' libtinfo.so.6 => /AATest/lib64/libtinfo.so.6 (0x00007f2c410f9000)')
|
|
print(' libdl.so.2 => /AATest/lib64/libdl.so.2 (0x00007f2c40ef5000)')
|
|
print(' libc.so.6 => /AATest/lib64/libc.so.6 (0x00007f2c40b50000)')
|
|
print(' /AATest/lib64/ld-linux-x86-64.so.2 (0x000055782c473000)')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/ld-2.22.so':
|
|
print(' linux-vdso.so.1 (0x00007ffcf97f4000)')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/libc-2.22.so':
|
|
print(' /AATest/lib64/ld-linux-x86-64.so.2 (0x0000556858473000)')
|
|
print(' linux-vdso.so.1 (0x00007ffe98912000)')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/libdl.so.2':
|
|
print(' linux-vdso.so.1 (0x00007ffec2538000)')
|
|
print(' libc.so.6 => /AATest/lib64/libc.so.6 (0x00007f8865346000)')
|
|
print(' /AATest/lib64/ld-linux-x86-64.so.2 (0x0000560c3bcee000)')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/libtinfo.so.6':
|
|
print(' linux-vdso.so.1 (0x00007fff30518000)')
|
|
print(' libc.so.6 => /AATest/lib64/libc.so.6 (0x00007fb6f2ea3000)')
|
|
print(' /AATest/lib64/ld-linux-x86-64.so.2 (0x00005631fe8d3000)')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/libreadline.so.6':
|
|
print(' linux-vdso.so.1 (0x00007ffcb5b62000)')
|
|
print(' libtinfo.so.6 => /AATest/lib64/libtinfo.so.6 (0x00007f2a4ed07000)')
|
|
print(' libc.so.6 => /AATest/lib64/libc.so.6 (0x00007f2a4e961000)')
|
|
print(' /AATest/lib64/ld-linux-x86-64.so.2 (0x000055f749c89000)')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/ld-linux-x86-64.so.2':
|
|
print(' statically linked')
|
|
|
|
elif sys.argv[1] == '/AATest/lib64/libc.so.6':
|
|
print(' /AATest/lib64/ld-linux-x86-64.so.2 (0x000055b65f7a9000)')
|
|
print(' linux-vdso.so.1 (0x00007ffde132b000)')
|
|
|
|
|
|
elif sys.argv[1] == '/AATest/sbin/ldconfig':
|
|
print(' not a dynamic executable')
|
|
sys.exit(1) # ldd exits with $? == 1 in this case
|
|
|
|
elif sys.argv[1].startswith('/tmp/aa-test-'): # test file generated by test-aa.py
|
|
print(' not a dynamic executable')
|
|
|
|
elif sys.argv[1] == 'TEMPLATE':
|
|
print('')
|
|
print('')
|
|
print('')
|
|
|
|
else:
|
|
raise Exception('unknown parameter in fake_ldd: %s' % sys.argv[1])
|