- } else if (strcmp(arg_name, "arguments")) {
- error_set(errp, QERR_QMP_EXTRA_MEMBER, arg_name);
+ } else if (!strcmp(arg_name, "arguments")) {
+ if (qobject_type(arg_obj) != QTYPE_QDICT) {
+ error_setg(errp, "QMP input object member '%s' expects '%s'",
+ "arguments", "object");
+ return NULL;
+ }
+ } else {
+ error_setg(errp, "QMP input object member '%s' is unexpected",
+ arg_name);