[lvm-devel] main - gcc-fanalyzer: explicit test null not pass

Zdenek Kabelac zkabelac at sourceware.org
Mon Sep 20 13:29:49 UTC 2021


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=5126ac7c3aa4f9f47a36c66095246d5b13871e61
Commit:        5126ac7c3aa4f9f47a36c66095246d5b13871e61
Parent:        e15d1e53c181b804b12f059788ed111d42353be9
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Sat Sep 18 00:26:24 2021 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Sep 20 10:51:30 2021 +0200

gcc-fanalyzer: explicit test null not pass

Make analyzer explicitelly aware we can't get NULL here.
---
 lib/metadata/mirror.c | 5 +++++
 tools/vgcfgrestore.c  | 5 ++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/metadata/mirror.c b/lib/metadata/mirror.c
index 050341a03..e2bf191a1 100644
--- a/lib/metadata/mirror.c
+++ b/lib/metadata/mirror.c
@@ -657,6 +657,11 @@ static int _split_mirror_images(struct logical_volume *lv,
 		dm_list_add(&split_images, &lvl->list);
 	}
 
+	if (!new_lv) {
+		log_error(INTERNAL_ERROR "New LV not found.");
+		return 0;
+	}
+
 	new_lv->name = dm_pool_strdup(lv->vg->vgmem, split_name);
 	if (!new_lv->name) {
 		log_error("Unable to rename newly split LV.");
diff --git a/tools/vgcfgrestore.c b/tools/vgcfgrestore.c
index e05c28688..e49313d14 100644
--- a/tools/vgcfgrestore.c
+++ b/tools/vgcfgrestore.c
@@ -104,7 +104,10 @@ int vgcfgrestore(struct cmd_context *cmd, int argc, char **argv)
 		return ECMD_PROCESSED;
 	}
 
-	if (!_check_all_dm_devices(vg_name, &found)) {
+	if (!vg_name) {
+		log_error(INTERNAL_ERROR "VG name is not set.");
+		return ECMD_FAILED;
+	} else if (!_check_all_dm_devices(vg_name, &found)) {
 		log_warn("WARNING: Failed to check for active volumes in volume group \"%s\".", vg_name);
 	} else if (found) {
 		log_warn("WARNING: Found %u active volume(s) in volume group \"%s\".",




More information about the lvm-devel mailing list