]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: pre-load ASan's DSO for iscsi-init.service 24897/head
authorFrantisek Sumsal <frantisek@sumsal.cz>
Sun, 2 Oct 2022 20:51:56 +0000 (22:51 +0200)
committerFrantisek Sumsal <frantisek@sumsal.cz>
Sun, 2 Oct 2022 20:53:26 +0000 (22:53 +0200)
The iscsi-init.service calls `sh` which might, in certain circumstances,
pull in instrumented systemd NSS modules causing `sh` to fail. Let's mitigate
this by pulling in an env file crafted by `create_asan_wrapper()` that
(among others) pre-loads ASan's DSO.

test/test-functions

index 06652cfad648e0994add316d821fd08d3077f993..d1e3e993f9c96499a7ac6f999a21864cbbc62ca5 100644 (file)
@@ -1047,6 +1047,14 @@ install_iscsi() {
         # [0] https://github.com/open-iscsi/open-iscsi/commit/f37d5b653f9f251845db3f29b1a3dcb90ec89731
         if [[ ! -e /etc/iscsi/initiatorname.iscsi ]]; then
             image_install "${ROOTLIBDIR:?}"/system/iscsi-init.service
+            if get_bool "$IS_BUILT_WITH_ASAN"; then
+                # The iscsi-init.service calls `sh` which might, in certain circumstances,
+                # pull in instrumented systemd NSS modules causing `sh` to fail. Let's mitigate
+                # this by pulling in an env file crafted by `create_asan_wrapper()` that
+                # (among others) pre-loads ASan's DSO.
+                mkdir -p "${initdir:?}/etc/systemd/system/iscsi-init.service.d/"
+                printf "[Service]\nEnvironmentFile=/usr/lib/systemd/systemd-asan-env" >"${initdir:?}/etc/systemd/system/iscsi-init.service.d/asan-env.conf"
+            fi
         else
             inst_simple "/etc/iscsi/initiatorname.iscsi"
         fi