From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44064) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoxbN-0005tH-Sw for qemu-devel@nongnu.org; Wed, 21 Oct 2015 13:55:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZoxbI-0006dn-PT for qemu-devel@nongnu.org; Wed, 21 Oct 2015 13:55:05 -0400 Received: from e35.co.us.ibm.com ([32.97.110.153]:47572) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZoxbI-0006dY-HR for qemu-devel@nongnu.org; Wed, 21 Oct 2015 13:55:00 -0400 Received: from localhost by e35.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 21 Oct 2015 11:55:00 -0600 From: Michael Roth Date: Wed, 21 Oct 2015 12:52:03 -0500 Message-Id: <1445449930-23525-34-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1445449930-23525-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1445449930-23525-1-git-send-email-mdroth@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH 33/40] qmp: Fix device-list-properties not to crash for abstract device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Michael Roth , qemu-stable@nongnu.org, Markus Armbruster From: Markus Armbruster Broken in commit f4eb32b "qmp: show QOM properties in device-list-properties", v2.1. Cc: qemu-stable@nongnu.org Signed-off-by: Markus Armbruster Reviewed-by: Eric Blake Reviewed-by: Andreas Färber Message-Id: <1443689999-12182-9-git-send-email-armbru@redhat.com> (cherry picked from commit edb1523d90415cb79f60f83b4028ef3820d15612) Conflicts: tests/device-introspect-test.c * removed hunk specific to QAPI introspection (not in 2.4) Signed-off-by: Michael Roth --- qmp.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/qmp.c b/qmp.c index 403805a..8603c46 100644 --- a/qmp.c +++ b/qmp.c @@ -514,6 +514,12 @@ DevicePropertyInfoList *qmp_device_list_properties(const char *typename, return NULL; } + if (object_class_is_abstract(klass)) { + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "name", + "non-abstract device type"); + return NULL; + } + obj = object_new(typename); QTAILQ_FOREACH(prop, &obj->properties, node) { -- 1.9.1