From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:54686) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RAkdu-0000YI-AN for qemu-devel@nongnu.org; Mon, 03 Oct 2011 11:41:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RAkdt-0008RZ-Ab for qemu-devel@nongnu.org; Mon, 03 Oct 2011 11:41:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45523) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RAkds-0008RV-W8 for qemu-devel@nongnu.org; Mon, 03 Oct 2011 11:41:21 -0400 Date: Mon, 3 Oct 2011 17:42:21 +0200 From: "Michael S. Tsirkin" Message-ID: <20111003154220.GD20141@redhat.com> References: <1316443309-23843-1-git-send-email-mdroth@linux.vnet.ibm.com> <4E88C7DB.9090105@linux.vnet.ibm.com> <20111002210802.GC8072@redhat.com> <4E89B0D4.3090203@us.ibm.com> <4E89B43B.4080000@linux.vnet.ibm.com> <4E89B627.7010008@us.ibm.com> <20111003133040.GC18920@redhat.com> <4E89BD15.1040708@codemonkey.ws> <20111003141852.GD19689@redhat.com> <4E89CD2F.7010707@us.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E89CD2F.7010707@us.ibm.com> Subject: Re: [Qemu-devel] [RFC] New Migration Protocol using Visitor Interface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: aliguori@linux.vnet.ibm.com, Stefan Berger , qemu-devel@nongnu.org, Michael Roth On Mon, Oct 03, 2011 at 09:56:47AM -0500, Anthony Liguori wrote: > On 10/03/2011 09:18 AM, Michael S. Tsirkin wrote: > >>skip_indefinite: > >> while tag != CANARY: > >> if tag == INT: > >> visit_type_int(v, NULL, NULL, errp); > >> elif tag == STRING: > >> visit_type_str(v, NULL, NULL, errp); > >> elif tag == INDEFINITE: > >> visit_start_struct(v, NULL, NULL, errp); > >> skip_indefinite(v, errp); > >> visit_end_struct(v, NULL, NULL, errp); > >> > >>end_struct: > >> v->skip = true; > >> skip_indefinite(v, errp); > >> v->skip = false; > >> > >>Regards, > >> > >>Anthony Liguori > > > >This implementation is recursive, which has the problem > >of wasting unlimited resources to skip bad input. > >And we really do not need to look at tag at all. Just > >the length. > > That's just one implementation. You could certainly do a > non-recursive implementation. > > Regards, > > Anthony Liguori What I was saying exactly: we do not need to maintain a stack to skip an indefinite length field, just a nesting counter will do. > >