]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: json: Convert virJSONValueNewObject() to g_new0
authorPeter Krempa <pkrempa@redhat.com>
Wed, 4 Mar 2020 09:04:33 +0000 (10:04 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 5 Mar 2020 10:31:38 +0000 (11:31 +0100)
Make it obvious that the function always returns a valid pointer and fix
all callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
21 files changed:
src/admin/admin_server_dispatch.c
src/locking/lock_daemon.c
src/logging/log_daemon.c
src/logging/log_handler.c
src/qemu/qemu_agent.c
src/qemu/qemu_command.c
src/qemu/qemu_firmware.c
src/qemu/qemu_migration_params.c
src/qemu/qemu_monitor_json.c
src/qemu/qemu_vhost_user.c
src/rpc/virnetdaemon.c
src/rpc/virnetserver.c
src/rpc/virnetserverclient.c
src/rpc/virnetserverservice.c
src/rpc/virnetsocket.c
src/util/virjson.c
src/util/virlease.c
src/util/virlockspace.c
src/util/virmacmap.c
src/util/virnetdev.c
tests/qemumonitortestutils.c

index 7b3bd697f3008bbe6a8cb1189f95ea90a96cecee..b3da57799548dd228bcb95c3567e23194da181c7 100644 (file)
@@ -119,9 +119,6 @@ virJSONValuePtr remoteAdmClientPreExecRestart(virNetServerClientPtr client G_GNU
 {
     virJSONValuePtr object = virJSONValueNewObject();
 
-    if (!object)
-        return NULL;
-
     /* No content to add at this time - just need empty object */
 
     return object;
index 5e5a0c10897ffd5cc8fca140ac3fe8ce0455df12..245155206a290ed7225f351ed21ccebe86aa0e77 100644 (file)
@@ -774,9 +774,6 @@ virLockDaemonClientPreExecRestart(virNetServerClientPtr client G_GNUC_UNUSED,
     virJSONValuePtr object = virJSONValueNewObject();
     char uuidstr[VIR_UUID_STRING_BUFLEN];
 
-    if (!object)
-        return NULL;
-
     if (virJSONValueObjectAppendBoolean(object, "restricted", priv->restricted) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("Cannot set restricted data in JSON document"));
@@ -923,16 +920,13 @@ virLockDaemonPreExecRestart(const char *state_file,
     virJSONValuePtr child;
     char *state = NULL;
     int ret = -1;
-    virJSONValuePtr object;
+    virJSONValuePtr object = virJSONValueNewObject();
     char *magic;
     virHashKeyValuePairPtr pairs = NULL, tmp;
     virJSONValuePtr lockspaces;
 
     VIR_DEBUG("Running pre-restart exec");
 
-    if (!(object = virJSONValueNewObject()))
-        goto cleanup;
-
     if (!(child = virNetDaemonPreExecRestart(dmn)))
         goto cleanup;
 
index 772bbb805b2fe9da5ce3119ab2b1411b46f20394..47377deb4f390697050d7f8b056d2499936198e7 100644 (file)
@@ -597,9 +597,6 @@ virLogDaemonClientPreExecRestart(virNetServerClientPtr client G_GNUC_UNUSED,
 {
     virJSONValuePtr object = virJSONValueNewObject();
 
-    if (!object)
-        return NULL;
-
     return object;
 }
 
@@ -718,15 +715,12 @@ virLogDaemonPreExecRestart(const char *state_file,
     virJSONValuePtr child;
     char *state = NULL;
     int ret = -1;
-    virJSONValuePtr object;
+    virJSONValuePtr object = virJSONValueNewObject();
     char *magic;
     virHashKeyValuePairPtr pairs = NULL;
 
     VIR_DEBUG("Running pre-restart exec");
 
-    if (!(object = virJSONValueNewObject()))
-        goto cleanup;
-
     if (!(child = virNetDaemonPreExecRestart(dmn)))
         goto cleanup;
 
index 576d0d6921433ed43ac4bc03896ad09c6647943a..87748d96d19beb3f9a0a1d9fa1810b854057965e 100644 (file)
@@ -615,9 +615,6 @@ virLogHandlerPreExecRestart(virLogHandlerPtr handler)
     size_t i;
     char domuuid[VIR_UUID_STRING_BUFLEN];
 
-    if (!ret)
-        return NULL;
-
     files = virJSONValueNewArray();
 
     if (virJSONValueObjectAppend(ret, "files", files) < 0) {
@@ -627,8 +624,6 @@ virLogHandlerPreExecRestart(virLogHandlerPtr handler)
 
     for (i = 0; i < handler->nfiles; i++) {
         virJSONValuePtr file = virJSONValueNewObject();
-        if (!file)
-            goto error;
 
         if (virJSONValueArrayAppend(files, file) < 0) {
             virJSONValueFree(file);
index 23a775034f4694c3cdef7277e0dbb8e7c66d4b0a..cd25ef6cd3d7f60a42ce4772ca8b1f0d32875f48 100644 (file)
@@ -1166,15 +1166,12 @@ static virJSONValuePtr G_GNUC_NULL_TERMINATED
 qemuAgentMakeCommand(const char *cmdname,
                      ...)
 {
-    virJSONValuePtr obj;
+    virJSONValuePtr obj = virJSONValueNewObject();
     virJSONValuePtr jargs = NULL;
     va_list args;
 
     va_start(args, cmdname);
 
-    if (!(obj = virJSONValueNewObject()))
-        goto error;
-
     if (virJSONValueObjectAppendString(obj, "execute", cmdname) < 0)
         goto error;
 
@@ -1544,8 +1541,7 @@ qemuAgentSetVCPUsCommand(qemuAgentPtr mon,
         (*nmodified)++;
 
         /* create single cpu object */
-        if (!(cpu = virJSONValueNewObject()))
-            goto cleanup;
+        cpu = virJSONValueNewObject();
 
         if (virJSONValueObjectAppendNumberInt(cpu, "logical-id", in->id) < 0)
             goto cleanup;
index 9d215e5e0651a25eaf5ddd98df30da2013d2b131..9e0334a3e77b51d9a23a056bffe0b4aef97bb774 100644 (file)
@@ -3442,8 +3442,7 @@ qemuBuildMemoryBackendProps(virJSONValuePtr *backendProps,
             return -1;
     }
 
-    if (!(props = virJSONValueNewObject()))
-        return -1;
+    props = virJSONValueNewObject();
 
     if (def->mem.source == VIR_DOMAIN_MEMORY_SOURCE_MEMFD) {
         backendType = "memory-backend-memfd";
index 68e2c6b40f3451b6394c3cd74109195601091395..bd251c05fc1f6113bf79e1e65918f7624cbb5298 100644 (file)
@@ -672,12 +672,9 @@ qemuFirmwareInterfaceFormat(virJSONValuePtr doc,
 static virJSONValuePtr
 qemuFirmwareFlashFileFormat(qemuFirmwareFlashFile flash)
 {
-    g_autoptr(virJSONValue) json = NULL;
+    g_autoptr(virJSONValue) json = virJSONValueNewObject();
     virJSONValuePtr ret;
 
-    if (!(json = virJSONValueNewObject()))
-        return NULL;
-
     if (virJSONValueObjectAppendString(json,
                                        "filename",
                                        flash.filename) < 0)
@@ -754,10 +751,7 @@ static int
 qemuFirmwareMappingFormat(virJSONValuePtr doc,
                           qemuFirmwarePtr fw)
 {
-    g_autoptr(virJSONValue) mapping = NULL;
-
-    if (!(mapping = virJSONValueNewObject()))
-        return -1;
+    g_autoptr(virJSONValue) mapping = virJSONValueNewObject();
 
     if (virJSONValueObjectAppendString(mapping,
                                        "device",
@@ -802,13 +796,10 @@ qemuFirmwareTargetFormat(virJSONValuePtr doc,
 
     for (i = 0; i < fw->ntargets; i++) {
         qemuFirmwareTargetPtr t = fw->targets[i];
-        g_autoptr(virJSONValue) target = NULL;
+        g_autoptr(virJSONValue) target = virJSONValueNewObject();
         g_autoptr(virJSONValue) machines = NULL;
         size_t j;
 
-        if (!(target = virJSONValueNewObject()))
-            return -1;
-
         if (virJSONValueObjectAppendString(target,
                                            "architecture",
                                            virQEMUCapsArchToString(t->architecture)) < 0)
@@ -869,14 +860,11 @@ qemuFirmwareFeatureFormat(virJSONValuePtr doc,
 char *
 qemuFirmwareFormat(qemuFirmwarePtr fw)
 {
-    g_autoptr(virJSONValue) doc = NULL;
+    g_autoptr(virJSONValue) doc = virJSONValueNewObject();
 
     if (!fw)
         return NULL;
 
-    if (!(doc = virJSONValueNewObject()))
-        return NULL;
-
     if (qemuFirmwareInterfaceFormat(doc, fw) < 0)
         return NULL;
 
index dd1ad9349bb5a692886c8fd0adc5a21a5e3cc75b..a92bb2fa2b1dede0fadeda67e4ebc8c494af2bf6 100644 (file)
@@ -729,15 +729,12 @@ qemuMigrationParamsFromJSON(virJSONValuePtr params)
 virJSONValuePtr
 qemuMigrationParamsToJSON(qemuMigrationParamsPtr migParams)
 {
-    virJSONValuePtr params = NULL;
+    virJSONValuePtr params = virJSONValueNewObject();
     qemuMigrationParamValuePtr pv;
     const char *name;
     size_t i;
     int rc;
 
-    if (!(params = virJSONValueNewObject()))
-        return NULL;
-
     for (i = 0; i < QEMU_MIGRATION_PARAM_LAST; i++) {
         name = qemuMigrationParamTypeToString(i);
         pv = &migParams->params[i];
@@ -797,8 +794,7 @@ qemuMigrationCapsToJSON(virBitmapPtr caps,
 
         ignore_value(virBitmapGetBit(states, bit, &state));
 
-        if (!(cap = virJSONValueNewObject()))
-            goto error;
+        cap = virJSONValueNewObject();
 
         name = qemuMigrationCapabilityTypeToString(bit);
         if (virJSONValueObjectAppendString(cap, "capability", name) < 0)
index 451e1afef5dffc14e5758d6692bb2e7912caf668..5f0185d10be4a302189de5cbd9cc3243b82acf7e 100644 (file)
@@ -690,15 +690,12 @@ qemuMonitorJSONParseKeywords(const char *str,
 static virJSONValuePtr
 qemuMonitorJSONKeywordStringToJSON(const char *str, const char *firstkeyword)
 {
-    virJSONValuePtr ret = NULL;
+    virJSONValuePtr ret = virJSONValueNewObject();
     char **keywords = NULL;
     char **values = NULL;
     int nkeywords = 0;
     size_t i;
 
-    if (!(ret = virJSONValueNewObject()))
-        return NULL;
-
     if (qemuMonitorJSONParseKeywords(str, &keywords, &values, &nkeywords, 1) < 0)
         goto error;
 
@@ -3444,12 +3441,9 @@ qemuMonitorJSONSetMigrationParams(qemuMonitorPtr mon,
                                   virJSONValuePtr params)
 {
     int ret = -1;
-    virJSONValuePtr cmd = NULL;
+    virJSONValuePtr cmd = virJSONValueNewObject();
     virJSONValuePtr reply = NULL;
 
-    if (!(cmd = virJSONValueNewObject()))
-        goto cleanup;
-
     if (virJSONValueObjectAppendString(cmd, "execute",
                                        "migrate-set-parameters") < 0)
         goto cleanup;
@@ -4823,8 +4817,7 @@ int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
         }
 
         /* create single key object */
-        if (!(key = virJSONValueNewObject()))
-            goto cleanup;
+        key = virJSONValueNewObject();
 
         /* Union KeyValue has two types, use the generic one */
         if (virJSONValueObjectAppendString(key, "type", "number") < 0)
@@ -5817,19 +5810,15 @@ static virJSONValuePtr
 qemuMonitorJSONMakeCPUModel(virCPUDefPtr cpu,
                             bool migratable)
 {
-    virJSONValuePtr model = NULL;
+    virJSONValuePtr model = virJSONValueNewObject();
     virJSONValuePtr props = NULL;
     size_t i;
 
-    if (!(model = virJSONValueNewObject()))
-        goto error;
-
     if (virJSONValueObjectAppendString(model, "name", cpu->model) < 0)
         goto error;
 
     if (cpu->nfeatures || !migratable) {
-        if (!(props = virJSONValueNewObject()))
-            goto error;
+        props = virJSONValueNewObject();
 
         for (i = 0; i < cpu->nfeatures; i++) {
             char *name = cpu->features[i].name;
@@ -7382,8 +7371,8 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
                                     const virDomainChrSourceDef *chr)
 {
     virJSONValuePtr ret = NULL;
-    virJSONValuePtr backend = NULL;
-    virJSONValuePtr data = NULL;
+    virJSONValuePtr backend = virJSONValueNewObject();
+    virJSONValuePtr data = virJSONValueNewObject();
     virJSONValuePtr addr = NULL;
     const char *backend_type = NULL;
     const char *host;
@@ -7391,11 +7380,6 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
     char *tlsalias = NULL;
     bool telnet;
 
-    if (!(backend = virJSONValueNewObject()) ||
-        !(data = virJSONValueNewObject())) {
-        goto cleanup;
-    }
-
     switch ((virDomainChrType)chr->type) {
     case VIR_DOMAIN_CHR_TYPE_NULL:
     case VIR_DOMAIN_CHR_TYPE_VC:
index aee18c96706212077dcdab987c5bfbbfded1224d..be7c3dd5b8acd0195e52ac637dfb36cbdc5fac31 100644 (file)
@@ -217,8 +217,7 @@ qemuVhostUserFormat(qemuVhostUserPtr vu)
     if (!vu)
         return NULL;
 
-    if (!(doc = virJSONValueNewObject()))
-        return NULL;
+    doc = virJSONValueNewObject();
 
     if (virJSONValueObjectAppendString(doc, "type",
                                        qemuVhostUserTypeTypeToString(vu->type)) < 0)
index 7f2226b086396142c659d5553843557a056d7c13..bb81a43d43c20e2e9d4d9af982febce1cd55c70e 100644 (file)
@@ -382,18 +382,12 @@ virJSONValuePtr
 virNetDaemonPreExecRestart(virNetDaemonPtr dmn)
 {
     size_t i = 0;
-    virJSONValuePtr object = NULL;
-    virJSONValuePtr srvObj = NULL;
+    virJSONValuePtr object = virJSONValueNewObject();
+    virJSONValuePtr srvObj = virJSONValueNewObject();
     virHashKeyValuePairPtr srvArray = NULL;
 
     virObjectLock(dmn);
 
-    if (!(object = virJSONValueNewObject()))
-        goto error;
-
-    if (!(srvObj = virJSONValueNewObject()))
-        goto error;
-
     if (virJSONValueObjectAppend(object, "servers", srvObj) < 0) {
         virJSONValueFree(srvObj);
         goto error;
index c87dade1a845020ae589ee12f009335f25d7554e..a5998801dec50095969dec0197648120a4dcb358 100644 (file)
@@ -546,16 +546,13 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
 
 virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv)
 {
-    virJSONValuePtr object;
+    virJSONValuePtr object = virJSONValueNewObject();
     virJSONValuePtr clients;
     virJSONValuePtr services;
     size_t i;
 
     virObjectLock(srv);
 
-    if (!(object = virJSONValueNewObject()))
-        goto error;
-
     if (virJSONValueObjectAppendNumberUint(object, "min_workers",
                                            virThreadPoolGetMinWorkers(srv->workers)) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
index 67b3bf95314ad1e5d9b58884062fd535bd137d92..4d85ee25d783de169aec2c51078b76895d1a8079 100644 (file)
@@ -593,9 +593,6 @@ virJSONValuePtr virNetServerClientPreExecRestart(virNetServerClientPtr client)
     virJSONValuePtr object = virJSONValueNewObject();
     virJSONValuePtr child;
 
-    if (!object)
-        return NULL;
-
     virObjectLock(client);
 
     if (virJSONValueObjectAppendNumberUlong(object, "id",
index 0a003e58147440ed8413a1f86a0a74b6e2f82428..9d5df456a85ae2e456b77e63ff44f365bd55af9e 100644 (file)
@@ -343,9 +343,6 @@ virJSONValuePtr virNetServerServicePreExecRestart(virNetServerServicePtr svc)
     virJSONValuePtr socks;
     size_t i;
 
-    if (!object)
-        return NULL;
-
     if (virJSONValueObjectAppendNumberInt(object, "auth", svc->auth) < 0)
         goto error;
     if (virJSONValueObjectAppendBoolean(object, "readonly", svc->readonly) < 0)
index a217404fa60557ea103d2a3d489fbbf1767eb959..360711acb61eb118d08979e764277d487497ac68 100644 (file)
@@ -1283,8 +1283,7 @@ virJSONValuePtr virNetSocketPreExecRestart(virNetSocketPtr sock)
         goto error;
     }
 
-    if (!(object = virJSONValueNewObject()))
-        goto error;
+    object = virJSONValueNewObject();
 
     if (virJSONValueObjectAppendNumberInt(object, "fd", sock->fd) < 0)
         goto error;
index ca57df816fefd0258c9a1efb77c417059a3861c5..2d7368b0b640087e982172bc9c918307f7530d54 100644 (file)
@@ -362,8 +362,7 @@ virJSONValueObjectCreateVArgs(virJSONValuePtr *obj,
 {
     int ret;
 
-    if (!(*obj = virJSONValueNewObject()))
-        return -1;
+    *obj = virJSONValueNewObject();
 
     /* free the object on error, or if no value objects were added */
     if ((ret = virJSONValueObjectAddVArgs(*obj, args)) <= 0) {
@@ -572,10 +571,7 @@ virJSONValueNewArray(void)
 virJSONValuePtr
 virJSONValueNewObject(void)
 {
-    virJSONValuePtr val;
-
-    if (VIR_ALLOC(val) < 0)
-        return NULL;
+    virJSONValuePtr val = g_new0(virJSONValue, 1);
 
     val->type = VIR_JSON_TYPE_OBJECT;
 
@@ -1503,8 +1499,6 @@ virJSONValueCopy(const virJSONValue *in)
     switch ((virJSONType) in->type) {
     case VIR_JSON_TYPE_OBJECT:
         out = virJSONValueNewObject();
-        if (!out)
-            return NULL;
         for (i = 0; i < in->data.object.npairs; i++) {
             virJSONValuePtr val = NULL;
             if (!(val = virJSONValueCopy(in->data.object.pairs[i].value)))
@@ -1724,9 +1718,6 @@ virJSONParserHandleStartMap(void *ctx)
 
     VIR_DEBUG("parser=%p", parser);
 
-    if (!value)
-        return 0;
-
     if (virJSONParserInsertValue(parser, value) < 0) {
         virJSONValueFree(value);
         return 0;
@@ -2103,8 +2094,7 @@ virJSONValueObjectDeflattenWorker(const char *key,
     }
 
     if (!(existobj = virJSONValueObjectGet(retobj, tokens[0]))) {
-        if (!(existobj = virJSONValueNewObject()))
-            goto cleanup;
+        existobj = virJSONValueNewObject();
 
         if (virJSONValueObjectAppend(retobj, tokens[0], existobj) < 0)
             goto cleanup;
@@ -2143,10 +2133,7 @@ virJSONValueObjectDeflattenWorker(const char *key,
 virJSONValuePtr
 virJSONValueObjectDeflatten(virJSONValuePtr json)
 {
-    g_autoptr(virJSONValue) deflattened = NULL;
-
-    if (!(deflattened = virJSONValueNewObject()))
-        return NULL;
+    g_autoptr(virJSONValue) deflattened = virJSONValueNewObject();
 
     if (virJSONValueObjectForeachKeyValue(json,
                                           virJSONValueObjectDeflattenWorker,
index e0f81539bede09b4eda29d7b3eae0de9f8e4b2ff..1cb9540d805be5d7b8dab9c733ae46b45bc48631 100644 (file)
@@ -238,11 +238,7 @@ virLeaseNew(virJSONValuePtr *lease_ret,
     }
 
     /* Create new lease */
-    if (!(lease_new = virJSONValueNewObject())) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("failed to create json"));
-        return -1;
-    }
+    lease_new = virJSONValueNewObject();
 
     if (iaid && virJSONValueObjectAppendString(lease_new, "iaid", iaid) < 0)
         return -1;
index a44377f89e8af2f0db72cd21e7e375c40c8941cc..05517f8b40dd7c47da0832133c536d3954bae864 100644 (file)
@@ -434,9 +434,6 @@ virJSONValuePtr virLockSpacePreExecRestart(virLockSpacePtr lockspace)
     virJSONValuePtr resources;
     virHashKeyValuePairPtr pairs = NULL, tmp;
 
-    if (!object)
-        return NULL;
-
     virMutexLock(&lockspace->lock);
 
     if (lockspace->dir &&
@@ -457,9 +454,6 @@ virJSONValuePtr virLockSpacePreExecRestart(virLockSpacePtr lockspace)
         virJSONValuePtr owners = NULL;
         size_t i;
 
-        if (!child)
-            goto error;
-
         if (virJSONValueArrayAppend(resources, child) < 0) {
             virJSONValueFree(child);
             goto error;
index ec589334ead3de89d48f467d1c663463a11325db..0c0ba90def5192062460141fef827d3a1066730e 100644 (file)
@@ -200,15 +200,12 @@ virMACMapHashDumper(void *payload,
                     const void *name,
                     void *data)
 {
-    virJSONValuePtr obj = NULL;
+    virJSONValuePtr obj = virJSONValueNewObject();
     virJSONValuePtr arr = NULL;
     const char **macs = payload;
     size_t i;
     int ret = -1;
 
-    if (!(obj = virJSONValueNewObject()))
-        goto cleanup;
-
     arr = virJSONValueNewArray();
 
     for (i = 0; macs[i]; i++) {
index 094d1ac09b552ca1e71fee9c6a85ba4933c49c6a..b465bdac2e4e4c7f6c66d0d370c3d41380b38e1c 100644 (file)
@@ -1874,8 +1874,7 @@ virNetDevSaveNetConfig(const char *linkdev, int vf,
         }
     }
 
-    if (!(configJSON = virJSONValueNewObject()))
-        goto cleanup;
+    configJSON = virJSONValueNewObject();
 
     /* if there is a PF, it's now in pfDevName, and linkdev is either
      * the VF's name, or NULL (if the VF isn't bound to a net driver
index b29e5d8cd2d7b5eca21204fcc2fb977cfbd10836..00f5b49439fe5921bd0603c9454243d9aae0b736 100644 (file)
@@ -529,12 +529,8 @@ qemuMonitorTestProcessCommandDefaultValidate(qemuMonitorTestPtr test,
         return -1;
     }
 
-    if (!args) {
-        if (!(emptyargs = virJSONValueNewObject()))
-            return -1;
-
-        args = emptyargs;
-    }
+    if (!args)
+        args = emptyargs = virJSONValueNewObject();
 
     if (testQEMUSchemaValidate(args, schemaroot, test->qapischema, &debug) < 0) {
         if (qemuMonitorReportError(test,