summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-11-16 00:00:32 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2015-11-16 01:16:09 +0100
commitd4288c9bdfa104bef1e31185da0b773924218f35 (patch)
tree1c06fe957f445980854420b7d3d93cb60a518394
parent422c7474ca97066ab92d145ac45bc4a9cd38e1b7 (diff)
downloadlvm2-d4288c9bdfa104bef1e31185da0b773924218f35.tar.gz
libdm: check for null from pool strdup
Unlikely to happen, but Coverity shown we may have possible derefer NULL pointer.
-rw-r--r--WHATS_NEW_DM1
-rw-r--r--libdm/libdm-string.c6
2 files changed, 5 insertions, 2 deletions
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index 795776b57..5e9228ad9 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,5 +1,6 @@
Version 1.02.111 -
====================================
+ Add missing check for allocation inside dm_split_lvm_name().
Test dm_task_get_message_response for !NULL in dm_stats_print_region().
Add checks for failing dm_stats_create() in dmsetup.
Add missing fifo close when failed to initialize client connection.
diff --git a/libdm/libdm-string.c b/libdm/libdm-string.c
index 587abfe34..913283283 100644
--- a/libdm/libdm-string.c
+++ b/libdm/libdm-string.c
@@ -95,8 +95,10 @@ static char *_unquote(char *component)
int dm_split_lvm_name(struct dm_pool *mem, const char *dmname,
char **vgname, char **lvname, char **layer)
{
- if (mem)
- *vgname = dm_pool_strdup(mem, dmname);
+ if (mem && !(*vgname = dm_pool_strdup(mem, dmname))) {
+ log_error("Failed to duplicate dmname.");
+ return 0;
+ }
if (!*vgname)
return 0;