| Upstream-Status: Submitted [https://github.com/karelzak/util-linux/pull/1375] |
| Signed-off-by: Ross Burton <ross.burton@arm.com> |
| |
| From dd956268ba89fc1caf83c45c3c495f34d261e0e2 Mon Sep 17 00:00:00 2001 |
| From: Ross Burton <ross.burton@arm.com> |
| Date: Thu, 1 Jul 2021 20:44:31 +0100 |
| Subject: [PATCH] test/eject: guard asan LD_PRELOAD with use-system-commands |
| check |
| |
| This test tries to add asan to LD_PRELOAD because the just-built eject |
| will call the host /bin/umount, and apparently asan doesn't like this. |
| |
| However, if ldd isn't present, this fails as the path to asan is the |
| error message saying that ldd isn't present. |
| |
| As the asan workaround is only needed when executing the binaries that |
| have just been built and not the system binaries, only use it if the |
| test is on the built binaries. |
| |
| Closes #1373. |
| |
| Signed-off-by: Ross Burton <ross.burton@arm.com> |
| --- |
| tests/ts/eject/umount | 16 +++++++++------- |
| 1 file changed, 9 insertions(+), 7 deletions(-) |
| |
| diff --git a/tests/ts/eject/umount b/tests/ts/eject/umount |
| index a829d46c0..2be281ee3 100755 |
| --- a/tests/ts/eject/umount |
| +++ b/tests/ts/eject/umount |
| @@ -60,13 +60,15 @@ function deinit_device { |
| ts_scsi_debug_rmmod |
| } |
| |
| -# As the eject binary execl()s an uninstrumented /bin/umount binary, we need |
| -# to explicitly $LD_PRELOAD the ASan's runtime DSO, otherwise ASan will complain. |
| -# Since all three utilities used by this test (eject, fdisk, mount) are just |
| -# libtool wrappers, let's check the kill binary instead, which should have |
| -# the needed DSO information. |
| -ASAN_RT_PATH="$(ts_get_asan_rt_path "$TS_CMD_KILL")" |
| -[ -n "$ASAN_RT_PATH" ] && export LD_PRELOAD="$ASAN_RT_PATH:$LD_PRELOAD" |
| +if [ "$TS_USE_SYSTEM_COMMANDS" != "yes" ]; then |
| + # As the eject binary execl()s an uninstrumented /bin/umount binary, we need |
| + # to explicitly $LD_PRELOAD the ASan's runtime DSO, otherwise ASan will complain. |
| + # Since all three utilities used by this test (eject, fdisk, mount) are just |
| + # libtool wrappers, let's check the kill binary instead, which should have |
| + # the needed DSO information. |
| + ASAN_RT_PATH="$(ts_get_asan_rt_path "$TS_CMD_KILL")" |
| + [ -n "$ASAN_RT_PATH" ] && export LD_PRELOAD="$ASAN_RT_PATH:$LD_PRELOAD" |
| +fi |
| |
| ts_init_subtest "by-disk" |
| init_device |
| -- |
| 2.25.1 |
| |