From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:41955) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAgY6-0002jg-Nl for qemu-devel@nongnu.org; Thu, 22 Mar 2012 07:51:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SAgY5-0004i6-13 for qemu-devel@nongnu.org; Thu, 22 Mar 2012 07:51:22 -0400 Received: from mail-we0-f173.google.com ([74.125.82.173]:52098) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SAgY4-0004hi-OW for qemu-devel@nongnu.org; Thu, 22 Mar 2012 07:51:20 -0400 Received: by werp12 with SMTP id p12so2022424wer.4 for ; Thu, 22 Mar 2012 04:51:18 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Thu, 22 Mar 2012 12:51:02 +0100 Message-Id: <1332417072-20329-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 00/10] QAPI minor fixes and strict mode List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mdroth@linux.vnet.ibm.com, eblake@redhat.com, anthony@codemonkey.vs, lcapitulino@redhat.com This patch includes a few minor changes to QAPI found during a more careful code review (patches 1-5) and the implementation of a strict mode for the QObject input visitor (patches 6-10). While QMP in general is designed so that it is possible to ignore unknown arguments, in the case of the QMP server it is better to reject them to detect bad clients. In fact, we're already doing this at the top level in the argument checker. Strict modes checks for unvisited keys and raises an error if it finds one, so that this checking extends to complex structures. Please review. Paolo Bonzini (10): qapi: add a test case for type errors qapi: fail hard on stack imbalance qapi: fix memory leak on error qapi: shortcut visits on errors qapi: allow freeing partially-allocated objects qapi: simplify qmp_input_next_list qapi: place outermost object on qiv stack qapi: add strict mode to input visitor qmp: add and use q type specifier qmp: parse commands in strict mode monitor.c | 3 + qapi/qmp-input-visitor.c | 113 ++++++++++++++-------- qapi/qmp-input-visitor.h | 2 + qmp-commands.hx | 4 +- scripts/qapi-commands.py | 2 +- scripts/qapi-visit.py | 16 +++ test-qmp-input-strict.c | 234 ++++++++++++++++++++++++++++++++++++++++++++++ test-qmp-input-visitor.c | 19 ++++ tests/Makefile | 5 +- 9 files changed, 354 insertions(+), 44 deletions(-) create mode 100644 test-qmp-input-strict.c -- 1.7.9.1