diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2016-10-03 16:29:55 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2016-10-03 17:46:26 +0200 |
commit | d70f1127624fa64ee691eb4c9d4bce5a4845f985 (patch) | |
tree | 417cf4d685c958b4288dcd19a96944ed6c1e7ec1 | |
parent | ee04f1fcfd915af927ad19c3952e211158f4df0d (diff) | |
download | lvm2-d70f1127624fa64ee691eb4c9d4bce5a4845f985.tar.gz |
libdm: check for mem when _canonicalize_field_ids
Add missing check for dm_pool_strdup() call (Coverity).
-rw-r--r-- | WHATS_NEW_DM | 1 | ||||
-rw-r--r-- | libdm/libdm-report.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM index 618673797..4303dc9ef 100644 --- a/WHATS_NEW_DM +++ b/WHATS_NEW_DM @@ -1,5 +1,6 @@ Version 1.02.136 - ====================================== + Check mem alloc fail in _canonicalize_field_ids(). Use unsigned math when checking more then 31 legs of raid. Fix 'dmstats delete' with dmsetup older than v1.02.129 Fix stats walk segfault with dmsetup older than v1.02.129 diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c index fed79d472..ebd24391e 100644 --- a/libdm/libdm-report.c +++ b/libdm/libdm-report.c @@ -1228,7 +1228,10 @@ static int _canonicalize_field_ids(struct dm_report *rh) return_0; if (differs) { - canonical_field_dup = dm_pool_strdup(rh->mem, canonical_field); + if (!(canonical_field_dup = dm_pool_strdup(rh->mem, canonical_field))) { + log_error("_canonicalize_field_dup: dm_pool_alloc failed."); + return 0; + } rh->canonical_field_ids[i] = canonical_field_dup; } else rh->canonical_field_ids[i] = rh->fields[i].id; |