From 80b4d20dfe9cf9258854d3fa224f0aedf6dfacac Mon Sep 17 00:00:00 2001 From: Adam Litke Date: Thu, 21 Jan 2010 16:26:35 +0100 Subject: [PATCH] domMemoryStats / qemu: Fix parsing of unknown stats Fix a small problem with the qemu memory stats parsing algorithm. If qemu reports a stat that libvirt does not recognize, skip past it so parsing can continue. This corrects a potential infinite loop in the parsing code that can only be triggered if new statistics are added to qemu. * src/qemu/qemu_monitor_text.c: qemuMonitorParseExtraBalloonInfo add a skip for extra ',' --- src/qemu/qemu_monitor_text.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index c3848b5246..0909b4da3d 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -507,7 +507,11 @@ static int qemuMonitorParseExtraBalloonInfo(char *text, ",total_mem=", &stats[nr_stats_found])) nr_stats_found++; - /* Skip to the next label */ + /* Skip to the next label. When *p is ',' the last match attempt + * failed so try to match the next ','. + */ + if (*p == ',') + p++; p = strchr (p, ','); if (!p) break; }