From 597cf5a1c197e269ad4376364422e23f5405105f Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 30 Jun 2010 13:57:24 -0700 Subject: [PATCH] json: Better handle JSON objects with duplicate names. RFC 4627 (which defines JSON) says: The names within an object SHOULD be unique. In my view, this means that the treatment of duplicate names within a JSON object is more or less up to the implementation. Until now, the OVS JSON parser has dealt with duplicates fairly badly: they all get shoved into the hash table and you get one or the other value semi-randomly (typically the one added later). This commit makes the behavior predictable: old values are deleted and replaced by newer values. --- lib/json.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/json.c b/lib/json.c index 10fa3c121..d26c89ed1 100644 --- a/lib/json.c +++ b/lib/json.c @@ -277,7 +277,7 @@ json_real_create(double real) void json_object_put(struct json *json, const char *name, struct json *value) { - shash_add(json->u.object, name, value); + json_destroy(shash_replace(json->u.object, name, value)); } void -- 2.20.1