* master - cov: split check for type assignment
@ 2018-11-05 16:27 Zdenek Kabelac
0 siblings, 0 replies; 2+ messages in thread
From: Zdenek Kabelac @ 2018-11-05 16:27 UTC (permalink / raw)
To: lvm-devel
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=79879bd201d4156312bb03fc0b7228ce34a3bf38
Commit: 79879bd201d4156312bb03fc0b7228ce34a3bf38
Parent: 6235861e64e9567493e14c6f227a6cc5ce609e07
Author: Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate: Thu Nov 1 15:33:34 2018 +0100
Committer: Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Sat Nov 3 16:09:36 2018 +0100
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.
---
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 a447017..b0c89ab 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(" ");
^ permalink raw reply related [flat|nested] 2+ messages in thread
* master - cov: split check for type assignment
@ 2020-10-20 20:34 Zdenek Kabelac
0 siblings, 0 replies; 2+ messages in thread
From: Zdenek Kabelac @ 2020-10-20 20:34 UTC (permalink / raw)
To: lvm-devel
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=3e06061d82dbcc2f464f0fdcd6610f25177bfa1f
Commit: 3e06061d82dbcc2f464f0fdcd6610f25177bfa1f
Parent: a17ec7e0baa737b45900cc4f97823c95f9dd8c56
Author: Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate: Mon Oct 19 16:43:50 2020 +0200
Committer: Zdenek Kabelac <zkabelac@redhat.com>
CommitterDate: Mon Oct 19 16:53:19 2020 +0200
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.
---
device_mapper/libdm-report.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/device_mapper/libdm-report.c b/device_mapper/libdm-report.c
index 85d3d0f82..9279e3370 100644
--- a/device_mapper/libdm-report.c
+++ b/device_mapper/libdm-report.c
@@ -749,10 +749,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(" ");
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-10-20 20:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-05 16:27 master - cov: split check for type assignment Zdenek Kabelac
2020-10-20 20:34 Zdenek Kabelac
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.