From 5b655dd4cdbf0c6a43cbfd66f38ff293d8cfd1e0 Mon Sep 17 00:00:00 2001 From: Dave Wysochanski Date: Mon, 15 Dec 2008 13:30:45 +0000 Subject: [PATCH] Fix segfault when invalid field given in reporting commands. Problem is dm_report_init() may return NULL and subsequent call to dm_report_set_output_field_name_prefix() doesn't handle NULL value. Example: pvs --nameprefixes --rows --unquoted --noheadings -opv_name,fred Logical Volume Fields --------------------- lv_uuid - Unique identifier lv_name - Name. LVs created for internal use are enclosed in brackets. ... Physical Volume Segment Fields ------------------------------ pvseg_start - Physical Extent number of start of segment. pvseg_size - Number of extents in segment. Unrecognised field: fred Segmentation fault --- WHATS_NEW | 1 + lib/report/report.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index 9b84b333d..86f8a2f29 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.44 - ==================================== + Fix segfault when invalid field given in reporting commands. Refactor init_lvm() for lvmcmdline and clvmd. Add liblvm interactive test infrastructure to build. Use better random seed value in temp file creation. diff --git a/lib/report/report.c b/lib/report/report.c index 4c164c9b4..a439c80f3 100644 --- a/lib/report/report.c +++ b/lib/report/report.c @@ -1108,7 +1108,7 @@ void *report_init(struct cmd_context *cmd, const char *format, const char *keys, rh = dm_report_init(report_type, _report_types, _fields, format, separator, report_flags, keys, cmd); - if (field_prefixes) + if (rh && field_prefixes) dm_report_set_output_field_name_prefix(rh, "lvm2_"); return rh; -- 2.43.5