From: Lennart Poettering Date: Fri, 15 Oct 2021 15:58:13 +0000 (+0200) Subject: homed,shutdown: call valgrind magic after LOOP_GET_STATUS64 X-Git-Tag: v250-rc1~495 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=48f462547d63e1d03bee612e1c77073263e71293;p=thirdparty%2Fsystemd.git homed,shutdown: call valgrind magic after LOOP_GET_STATUS64 valgrind doesn't understand LOOP_GET_STATUS64. We already work around this in various placed, via VALGRIND_MAKE_MEM_DEFINE(), but we forgot three places. Let's fix that. --- diff --git a/src/home/homework-luks.c b/src/home/homework-luks.c index 050c9cd6d55..1f459fedc7c 100644 --- a/src/home/homework-luks.c +++ b/src/home/homework-luks.c @@ -8,6 +8,10 @@ #include #include +#if HAVE_VALGRIND_MEMCHECK_H +#include +#endif + #include "sd-daemon.h" #include "blkid-util.h" @@ -1193,6 +1197,10 @@ int home_prepare_luks( offset *= 512U; } } else { +#if HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_DEFINED(&info, sizeof(info)); +#endif + offset = info.lo_offset; size = info.lo_sizelimit; } diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c index 09fc339ab1d..881d4e471e9 100644 --- a/src/shutdown/umount.c +++ b/src/shutdown/umount.c @@ -15,6 +15,10 @@ #include #include +#if HAVE_VALGRIND_MEMCHECK_H +#include +#endif + #include "sd-device.h" #include "alloc-util.h" @@ -409,6 +413,10 @@ static int delete_loopback(const char *device) { return -EBUSY; /* propagate original error */ } +#if HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_DEFINED(&info, sizeof(info)); +#endif + if (FLAGS_SET(info.lo_flags, LO_FLAGS_AUTOCLEAR)) /* someone else already set LO_FLAGS_AUTOCLEAR for us? fine by us */ return -EBUSY; /* propagate original error */ @@ -434,6 +442,10 @@ static int delete_loopback(const char *device) { return 1; } +#if HAVE_VALGRIND_MEMCHECK_H + VALGRIND_MAKE_MEM_DEFINED(&info, sizeof(info)); +#endif + /* Linux makes LOOP_CLR_FD succeed whenever LO_FLAGS_AUTOCLEAR is set without actually doing * anything. Very confusing. Let's hence not claim we did anything in this case. */ if (FLAGS_SET(info.lo_flags, LO_FLAGS_AUTOCLEAR))