Commit edb1523d authored by Markus Armbruster's avatar Markus Armbruster
Browse files

qmp: Fix device-list-properties not to crash for abstract device



Broken in commit f4eb32b5 "qmp: show QOM properties in
device-list-properties", v2.1.

Cc: qemu-stable@nongnu.org
Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarAndreas Färber <afaerber@suse.de>
Message-Id: <1443689999-12182-9-git-send-email-armbru@redhat.com>
parent 2d1abb85
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -515,6 +515,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) {
+4 −11
Original line number Diff line number Diff line
@@ -45,17 +45,10 @@ static void test_one_device(const char *type)
    QDict *resp;
    char *help, *qom_tree;

    /*
     * Skip this part for the abstract device test case, because
     * device-list-properties crashes for such devices.
     * FIXME fix it not to crash
     */
    if (strcmp(type, "device")) {
    resp = qmp("{'execute': 'device-list-properties',"
               " 'arguments': {'typename': %s}}",
               type);
    QDECREF(resp);
    }

    help = hmp("device_add \"%s,help\"", type);
    g_free(help);