From 2f4ad535492be33a4cfa6d87fb28ebd9c4f1ac07 Mon Sep 17 00:00:00 2001 From: Shreenidhi Shedi Date: Mon, 13 Jun 2022 14:27:51 +0530 Subject: [PATCH 1/2] homework: initialize we_detached Fixes: CID#1469711 CID 1469711 (#1 of 1): Uninitialized scalar variable (UNINIT) 14. uninit_use: Using uninitialized value we_detached. --- src/home/homework-luks.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/home/homework-luks.c b/src/home/homework-luks.c index 6541cb7ec9..100b0e1650 100644 --- a/src/home/homework-luks.c +++ b/src/home/homework-luks.c @@ -1603,7 +1603,7 @@ int home_activate_luks( } int home_deactivate_luks(UserRecord *h, HomeSetup *setup) { - bool we_detached; + bool we_detached = false; int r; assert(h); @@ -1619,10 +1619,8 @@ int home_deactivate_luks(UserRecord *h, HomeSetup *setup) { r = acquire_open_luks_device(h, setup, /* graceful= */ true); if (r < 0) return log_error_errno(r, "Failed to initialize cryptsetup context for %s: %m", setup->dm_name); - if (r == 0) { + if (r == 0) log_debug("LUKS device %s has already been detached.", setup->dm_name); - we_detached = false; - } } if (setup->crypt_device) { @@ -1631,10 +1629,9 @@ int home_deactivate_luks(UserRecord *h, HomeSetup *setup) { cryptsetup_enable_logging(setup->crypt_device); r = sym_crypt_deactivate_by_name(setup->crypt_device, setup->dm_name, 0); - if (ERRNO_IS_DEVICE_ABSENT(r) || r == -EINVAL) { + if (ERRNO_IS_DEVICE_ABSENT(r) || r == -EINVAL) log_debug_errno(r, "LUKS device %s is already detached.", setup->dm_node); - we_detached = false; - } else if (r < 0) + else if (r < 0) return log_info_errno(r, "LUKS device %s couldn't be deactivated: %m", setup->dm_node); else { log_info("LUKS device detaching completed."); From c9f5ac0917409cd9eb3d55b72c2443d9b5374709 Mon Sep 17 00:00:00 2001 From: Shreenidhi Shedi Date: Tue, 14 Jun 2022 10:28:37 +0530 Subject: [PATCH 2/2] sd-journal: check retval of sd_id128_from_string call Fixes: CID#1469712 CID 1469712 (#1 of 1): Unused value (UNUSED_VALUE) returned_value: Assigning value from sd_id128_from_string(word + 2, &boot_id) to r here, but that stored value is overwritten before it can be used. --- src/libsystemd/sd-journal/sd-journal.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libsystemd/sd-journal/sd-journal.c b/src/libsystemd/sd-journal/sd-journal.c index 5138993f05..4a9f1a90b2 100644 --- a/src/libsystemd/sd-journal/sd-journal.c +++ b/src/libsystemd/sd-journal/sd-journal.c @@ -987,6 +987,8 @@ _public_ int sd_journal_seek_cursor(sd_journal *j, const char *cursor) { case 'b': boot_id_set = true; r = sd_id128_from_string(word + 2, &boot_id); + if (r < 0) + return r; break; case 'm':