From: Dave Wysochanski Date: Mon, 15 Dec 2008 13:30:45 +0000 (+0000) Subject: Fix segfault when invalid field given in reporting commands. X-Git-Tag: v2_02_91~3308 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=539f903fd251e2f9fd48f1b4f0c3a33a7b477dbd;p=lvm2.git 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 --- 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;