From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:37705) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMvop-00063v-OL for qemu-devel@nongnu.org; Tue, 02 Apr 2013 03:39:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UMvon-0008SY-A0 for qemu-devel@nongnu.org; Tue, 02 Apr 2013 03:39:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:5980) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMvon-0008SM-2P for qemu-devel@nongnu.org; Tue, 02 Apr 2013 03:39:45 -0400 Date: Tue, 2 Apr 2013 09:39:38 +0200 From: Kevin Wolf Message-ID: <20130402073938.GA2341@dhcp-200-207.str.redhat.com> References: <1363961953-13561-1-git-send-email-xiawenc@linux.vnet.ibm.com> <1363961953-13561-13-git-send-email-xiawenc@linux.vnet.ibm.com> <51561E00.9070002@redhat.com> <5156DCE2.8070604@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <5156DCE2.8070604@linux.vnet.ibm.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH V10 12/17] hmp: add function hmp_info_snapshots() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Wenchao Xia Cc: aliguori@us.ibm.com, stefanha@gmail.com, qemu-devel@nongnu.org, armbru@redhat.com, pbonzini@redhat.com, lcapitulino@redhat.com Am 30.03.2013 um 13:38 hat Wenchao Xia geschrieben: > =E4=BA=8E 2013-3-30 7:04, Eric Blake =E5=86=99=E9=81=93: > >On 03/22/2013 08:19 AM, Wenchao Xia wrote: > >> This function will simply call qmp interface qmp_query_snapshots() > >>added in last commit and then dump information in monitor console. > >> To get snapshot info, Now qemu and qemu-img both call block layer > >>function bdrv_query_snapshot_info_list() in their calling path, and > >>then they just translate the qmp object got to strings in stdout or > >>monitor console. > >> > >>Signed-off-by: Wenchao Xia > >>--- > >> hmp.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > >> hmp.h | 1 + > >> 2 files changed, 43 insertions(+), 0 deletions(-) > >> > >>diff --git a/hmp.c b/hmp.c > >>index b0a861c..c475d65 100644 > >>--- a/hmp.c > >>+++ b/hmp.c > >>@@ -651,6 +651,48 @@ void hmp_info_tpm(Monitor *mon, const QDict *qdi= ct) > >> qapi_free_TPMInfoList(info_list); > >> } > >> > >>+/* assume list is valid */ > >>+static void monitor_dump_snapshotinfolist(Monitor *mon, SnapshotInfo= List *list) > >>+{ > >>+ SnapshotInfoList *elem; > >>+ char buf[256]; > >>+ > >>+ monitor_printf(mon, "%s\n", bdrv_snapshot_dump(buf, sizeof(buf),= NULL)); > > > >Are you sure that won't ever be truncated? I'm pretty sure that I cou= ld > >come up with a scenario where I cause bdrv_snapshot_dump() to want to > >output more than 256 bytes of details. > > > I hope not use dynamic buff for strings, how about check it as > following: >=20 > char buf[254] =3D 0; > monitor_printf(mon, "%s\n", bdrv_snapshot_dump(buf, sizeof(buf), NULL))= ; > if (buf[254]) { > monitor_printf(mon, "'string truncated'"); > } About as useless as the truncated string alone. That something is missing will be noticed by the user; the fix isn't to tell him that the output is broken, but to give the full output. Kevin