[lvm-devel] master - coverity: check for profile

Zdenek Kabelac zkabelac at fedoraproject.org
Wed May 7 12:18:58 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=a8042f33d0ee7f71952d65f2cc408775fa440c8a
Commit:        a8042f33d0ee7f71952d65f2cc408775fa440c8a
Parent:        48a8cf28f751156471a3fc65650fc600cd24833c
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Wed May 7 10:52:00 2014 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Wed May 7 14:15:52 2014 +0200

coverity: check for profile

Ensure str is not NULL for analyzer.
---
 lib/config/config.c       |    5 ++++-
 lib/metadata/thin_manip.c |   10 ++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/config/config.c b/lib/config/config.c
index a751d3e..1a9f636 100644
--- a/lib/config/config.c
+++ b/lib/config/config.c
@@ -1766,7 +1766,10 @@ int get_default_allocation_thin_pool_chunk_size_CFG(struct cmd_context *cmd, str
 	const char *str;
 	uint32_t chunk_size;
 
-	str = find_config_tree_str(cmd, allocation_thin_pool_chunk_size_policy_CFG, profile);
+	if (!(str = find_config_tree_str(cmd, allocation_thin_pool_chunk_size_policy_CFG, profile))) {
+		log_error(INTERNAL_ERROR "Cannot find profile.");
+		return 0;
+	}
 
 	if (!strcasecmp(str, "generic"))
 		chunk_size = DEFAULT_THIN_POOL_CHUNK_SIZE;
diff --git a/lib/metadata/thin_manip.c b/lib/metadata/thin_manip.c
index 78231a2..c1c90b4 100644
--- a/lib/metadata/thin_manip.c
+++ b/lib/metadata/thin_manip.c
@@ -375,7 +375,10 @@ int update_profilable_pool_params(struct cmd_context *cmd, struct profile *profi
 
 	if (!(passed_args & PASS_ARG_CHUNK_SIZE)) {
 		if (!(*chunk_size = find_config_tree_int(cmd, allocation_thin_pool_chunk_size_CFG, profile) * 2)) {
-			str = find_config_tree_str(cmd, allocation_thin_pool_chunk_size_policy_CFG, profile);
+			if (!(str = find_config_tree_str(cmd, allocation_thin_pool_chunk_size_policy_CFG, profile))) {
+				log_error(INTERNAL_ERROR "Could not find profile.");
+				return 0;
+			}
 			if (!strcasecmp(str, "generic"))
 				*chunk_size_calc_method = THIN_CHUNK_SIZE_CALC_METHOD_GENERIC;
 			else if (!strcasecmp(str, "performance"))
@@ -397,7 +400,10 @@ int update_profilable_pool_params(struct cmd_context *cmd, struct profile *profi
 	}
 
 	if (!(passed_args & PASS_ARG_DISCARDS)) {
-		str = find_config_tree_str(cmd, allocation_thin_pool_discards_CFG, profile);
+		if (!(str = find_config_tree_str(cmd, allocation_thin_pool_discards_CFG, profile))) {
+			log_error(INTERNAL_ERROR "Could not find profile.");
+			return 0;
+		}
 		if (!get_pool_discards(str, discards))
 			return_0;
 	}




More information about the lvm-devel mailing list