[dm-devel] device-mapper/lib libdm-report.c

agk at sourceware.org agk at sourceware.org
Wed Jun 25 00:10:36 UTC 2008


CVSROOT:	/cvs/dm
Module name:	device-mapper
Changes by:	agk at sourceware.org	2008-06-25 00:10:36

Modified files:
	lib            : libdm-report.c 

Log message:
	Cope with missing field values.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/device-mapper/lib/libdm-report.c.diff?cvsroot=dm&r1=1.21&r2=1.22

--- device-mapper/lib/libdm-report.c	2008/06/24 22:53:48	1.21
+++ device-mapper/lib/libdm-report.c	2008/06/25 00:10:36	1.22
@@ -895,8 +895,13 @@
 	}
 
 	list_iterate_items(fp, &rh->field_props) {
-		if (fp->flags & FLD_HIDDEN)
+		if (fp->flags & FLD_HIDDEN) {
+			list_iterate_items(row, &rh->rows) {
+				field = list_item(list_first(&row->fields), struct dm_report_field);
+				list_del(&field->list);
+			}
 			continue;
+		}
 
 		if ((rh->flags & DM_REPORT_OUTPUT_HEADINGS)) {
 			if (!dm_pool_grow_object(rh->mem, rh->fields[fp->field_num].heading, 0)) {
@@ -910,10 +915,11 @@
 		}
 
 		list_iterate_items(row, &rh->rows) {
-			field = list_item(list_first(&row->fields), struct dm_report_field);
-			if (!_output_field(rh, field))
-				goto bad;
-			list_del(&field->list);
+			if ((field = list_item(list_first(&row->fields), struct dm_report_field))) {
+				if (!_output_field(rh, field))
+					goto bad;
+				list_del(&field->list);
+			}
 
 			if (!list_end(&rh->rows, &row->list))
 				if (!dm_pool_grow_object(rh->mem, rh->separator, 0)) {




More information about the dm-devel mailing list