diff --git a/qobject/json-parser.c b/qobject/json-parser.c index 5a840dfd860735d3f7a2bea8b91cfb2dbc01e6d9..7a7ae9e8d1a860439c83c079c29a7ca94599d4a5 100644 --- a/qobject/json-parser.c +++ b/qobject/json-parser.c @@ -288,6 +288,11 @@ static int parse_pair(JSONParserContext *ctxt, QDict *dict) goto out; } + if (qdict_haskey(dict, qstring_get_str(key))) { + parse_error(ctxt, token, "duplicate key"); + goto out; + } + qdict_put_obj(dict, qstring_get_str(key), value); qobject_unref(key); diff --git a/tests/qemu-iotests/229 b/tests/qemu-iotests/229 index 86602437fff07fc7e7b681da52db08437dcdd7a5..893d098ad23653d13caa5e08d3af5a8c1ad16628 100755 --- a/tests/qemu-iotests/229 +++ b/tests/qemu-iotests/229 @@ -69,7 +69,6 @@ echo _send_qemu_cmd $QEMU_HANDLE \ "{'execute': 'drive-mirror', 'arguments': {'device': 'testdisk', - 'mode': 'absolute-paths', 'format': '$IMGFMT', 'target': '$DEST_IMG', 'sync': 'full',