[libvirt] [PATCH] qemuMonitorTextGetMemoryStats: decrease risk of false positive in parsing

Jim Meyering jim at meyering.net
Fri Mar 5 14:29:56 UTC 2010


Not urgent.

This was highlighted by clang as a dead store, since
the first result stored in "offset" was never used.
But if "info balloon" were ever to print some introductory
text (containing a comma) before the balloon: actual... line,
the bug would have made a difference.


>From c81c6af87f20740a6b75652937ec8346f8bf59e3 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Fri, 5 Mar 2010 15:25:48 +0100
Subject: [PATCH] qemuMonitorTextGetMemoryStats: decrease risk of false positive in parsing

The code erroneously searched the entire "reply" for a comma, when
its intent was to search only that portion after "balloon: actual="
* src/qemu/qemu_monitor_text.c (qemuMonitorTextGetMemoryStats):
Search for "," only starting *after* the BALLOON_PREFIX string.
Otherwise, we'd be more prone to false positives.
---
 src/qemu/qemu_monitor_text.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index 7f0e7f6..e629c6b 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -593,7 +593,8 @@ int qemuMonitorTextGetMemoryStats(qemuMonitorPtr mon,
     }

     if ((offset = strstr(reply, BALLOON_PREFIX)) != NULL) {
-        if ((offset = strchr(reply, ',')) != NULL) {
+        offset += strlen(BALLOON_PREFIX);
+        if ((offset = strchr(offset, ',')) != NULL) {
             ret = qemuMonitorParseExtraBalloonInfo(offset, stats, nr_stats);
         }
     }
--
1.7.0.1.300.gd855a




More information about the libvir-list mailing list