From nobody Mon Feb 9 08:56:51 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1623097040; cv=none; d=zohomail.com; s=zohoarc; b=PQmOnHQvLrCgOuE9D2jWTyupAVCfQ+7E2qUFc/nNYpBrUacEBOZ7nWD32ssFXFiPw6cevL922QlQjW66NzJqNX9f3qfbPADgKVbgDUdZfz+SmkcXjV9+4y+xSvNzNMw1YloLbt5Ow5hxl8elfxH3x4Wlm30KXojMnvoz4jTc/GI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1623097040; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=zV+e+y2+DzmyOBOZVWkGYPaZC9gbrIzL6764Vos/ObE=; b=OFIVPs+UcMLMz6bMoaJxsLSKdKTF5LkY1Y2ZitjJG0amOdOBL57HFAY/Ik4V164PGr4qS/oHpQlusID3kba3885cdL2ed8KJNKEJZ57WdheZsAZ3h1U8fOZ4t40/W+Ttqu7K8io2Pu4BZFVfQHXoC9rKVkfWFv1LMml9gC/ok7c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1623097040043415.0642459207286; Mon, 7 Jun 2021 13:17:20 -0700 (PDT) Received: from localhost ([::1]:32854 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lqLgU-000465-VU for importer@patchew.org; Mon, 07 Jun 2021 16:17:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37872) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lqLXI-0004ec-CL for qemu-devel@nongnu.org; Mon, 07 Jun 2021 16:07:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39375) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lqLX1-0006aV-Nw for qemu-devel@nongnu.org; Mon, 07 Jun 2021 16:07:48 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-564-1lhLcm6pNf-EqFRcI5dILQ-1; Mon, 07 Jun 2021 16:07:29 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 14F44108C303; Mon, 7 Jun 2021 20:07:29 +0000 (UTC) Received: from scv.redhat.com (ovpn-116-137.rdu2.redhat.com [10.10.116.137]) by smtp.corp.redhat.com (Postfix) with ESMTP id EB5175C1C2; Mon, 7 Jun 2021 20:07:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623096451; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zV+e+y2+DzmyOBOZVWkGYPaZC9gbrIzL6764Vos/ObE=; b=IF6UyW/aQrbIodgkN1KBtlr25XR1RsD7cwQBwOGw/DdPen4yfcMWG/HiA13B+IJP6dbny0 SCX+BMIwSXatTh6Q4ar9m7JxnkR2cDkxoIV1tgnAKHJLxbEjR03qw2vgGQtUDOjfx+9ktK lwPAjaodHGFRdR6H5UpztvbDgE/Eshk= X-MC-Unique: 1lhLcm6pNf-EqFRcI5dILQ-1 From: John Snow To: qemu-devel@nongnu.org Subject: [PATCH 34/42] scripts/qmp-shell: Fix empty-transaction invocation Date: Mon, 7 Jun 2021 16:06:41 -0400 Message-Id: <20210607200649.1840382-35-jsnow@redhat.com> In-Reply-To: <20210607200649.1840382-1-jsnow@redhat.com> References: <20210607200649.1840382-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.2, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Niteesh G . S ." , Cleber Rosa , John Snow , Markus Armbruster , Eduardo Habkost Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" calling "transaction( )" is pointless, but valid. Rework the parser to allow this kind of invocation. This helps clean up exception handling later by removing accidental breakages of the parser that aren't explicitly forbidden. Signed-off-by: John Snow --- scripts/qmp/qmp-shell | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell index 3c32b576a3..78e4eae007 100755 --- a/scripts/qmp/qmp-shell +++ b/scripts/qmp/qmp-shell @@ -244,11 +244,14 @@ class QMPShell(qmp.QEMUMonitorProtocol): cmdargs =3D re.findall(argument_regex, cmdline) qmpcmd: QMPMessage =20 - # Transactional CLI entry/exit: - if cmdargs[0] =3D=3D 'transaction(': + # Transactional CLI entry: + if cmdargs and cmdargs[0] =3D=3D 'transaction(': self._transmode =3D True + self._actions =3D [] cmdargs.pop(0) - elif cmdargs[0] =3D=3D ')' and self._transmode: + + # Transactional CLI exit: + if cmdargs and cmdargs[0] =3D=3D ')' and self._transmode: self._transmode =3D False if len(cmdargs) > 1: msg =3D 'Unexpected input after close of Transaction sub-s= hell' @@ -257,15 +260,14 @@ class QMPShell(qmp.QEMUMonitorProtocol): 'execute': 'transaction', 'arguments': {'actions': self._actions} } - self._actions =3D list() return qmpcmd =20 - # Nothing to process? + # No args, or no args remaining if not cmdargs: return None =20 - # Parse and then cache this Transactional Action if self._transmode: + # Parse and cache this Transactional Action finalize =3D False action =3D {'type': cmdargs[0], 'data': {}} if cmdargs[-1] =3D=3D ')': --=20 2.31.1