From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55135) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WDcQM-000565-4Q for qemu-devel@nongnu.org; Wed, 12 Feb 2014 11:12:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WDcQG-0005LX-0x for qemu-devel@nongnu.org; Wed, 12 Feb 2014 11:12:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:63966) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WDcQF-0005LD-P7 for qemu-devel@nongnu.org; Wed, 12 Feb 2014 11:12:27 -0500 From: "Dr. David Alan Gilbert (git)" Date: Wed, 12 Feb 2014 16:12:17 +0000 Message-Id: <1392221537-29430-1-git-send-email-dgilbert@redhat.com> Subject: [Qemu-devel] [PATCH 1/1] Fix vmstate_info_int32_le comparison/assign List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, quintela@redhat.com From: "Dr. David Alan Gilbert" Fix comparison of vmstate_info_int32_le so that it succeeds if loaded value is (l)ess than or (e)qual When the comparison succeeds, assign the value loaded This is a change in behaviour but I think the original intent, since the idea is to check if the version/size of the thing you're loading is less than some limit, but you might well want to do something based on the actual version/size in the file Fix up comment and name text --- vmstate.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/vmstate.c b/vmstate.c index 284b080..d1f5eb0 100644 --- a/vmstate.c +++ b/vmstate.c @@ -321,23 +321,24 @@ const VMStateInfo vmstate_info_int32_equal = { .put = put_int32, }; -/* 32 bit int. See that the received value is the less or the same - than the one in the field */ +/* 32 bit int. Check that the received value is less than or equal to + the one in the field */ static int get_int32_le(QEMUFile *f, void *pv, size_t size) { - int32_t *old = pv; - int32_t new; - qemu_get_sbe32s(f, &new); + int32_t *cur = pv; + int32_t loaded; + qemu_get_sbe32s(f, &loaded); - if (*old <= new) { + if (loaded <= *cur) { + *cur = loaded; return 0; } return -EINVAL; } const VMStateInfo vmstate_info_int32_le = { - .name = "int32 equal", + .name = "int32 le", .get = get_int32_le, .put = put_int32, }; -- 1.8.5.3