From 81069ae3f53e0c1f09e0842969ba6774912a27c6 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 23 Sep 2014 11:48:08 +0200 Subject: [PATCH] util: json: Improve handling and docs for adding JSON objects The JSON structure constructor has an option to add JSON arrays to the constructed object. The description is inaccurate as it can add any json object even a dict. Change the docs to cover this option and reject adding NULL objects. --- src/util/virjson.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/util/virjson.c b/src/util/virjson.c index 1dedd8fe0c..81833f73a7 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -97,7 +97,8 @@ struct _virJSONParser { * * d: double precision floating point number * n: json null value - * a: json array + * + * a: json object, must be non-NULL * * The value corresponds to the selected type. * @@ -231,6 +232,14 @@ virJSONValueObjectCreateVArgs(virJSONValuePtr *obj, va_list args) case 'a': { virJSONValuePtr val = va_arg(args, virJSONValuePtr); + + if (!val) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("argument key '%s' must not have null value"), + key); + goto cleanup; + } + rc = virJSONValueObjectAppend(jargs, key, val); } break;