diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2018-11-01 15:33:34 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2018-11-03 16:09:36 +0100 |
commit | 79879bd201d4156312bb03fc0b7228ce34a3bf38 (patch) | |
tree | 2f96de1478baf83cf050b71742e4da41262a23ef /libdm/libdm-report.c | |
parent | 6235861e64e9567493e14c6f227a6cc5ce609e07 (diff) | |
download | lvm2-79879bd201d4156312bb03fc0b7228ce34a3bf38.tar.gz |
cov: split check for type assignment
Check that type is always defined, if not make it explicit internal
error (although logged as debug - so catched only with proper lvm.conf
setting).
This ensures later type being NULL can't be dereferenced with coredump.
Diffstat (limited to 'libdm/libdm-report.c')
-rw-r--r-- | libdm/libdm-report.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c index a44701704..b0c89ab61 100644 --- a/libdm/libdm-report.c +++ b/libdm/libdm-report.c @@ -748,10 +748,11 @@ static void _display_fields_more(struct dm_report *rh, id_len = strlen(type->prefix) + 3; for (f = 0; fields[f].report_fn; f++) { - if ((type = _find_type(rh, fields[f].type)) && type->desc) - desc = type->desc; - else - desc = " "; + if (!(type = _find_type(rh, fields[f].type))) { + log_debug(INTERNAL_ERROR "Field type undefined."); + continue; + } + desc = (type->desc) ? : " "; if (desc != last_desc) { if (*last_desc) log_warn(" "); |