Blob Blame History Raw
From 500025205783acaa29d3c0e020ef8c6ce9579784 Mon Sep 17 00:00:00 2001
Message-Id: <500025205783acaa29d3c0e020ef8c6ce9579784@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 4 Feb 2020 15:08:18 +0100
Subject: [PATCH] virJSONValueNewArray: Use g_new0 to allocate and remove NULL
 checks from callers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Use the glib allocation function that never returns NULL and remove the
now dead-code checks from all callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit d69470a18afa909a18f336e46a1817657b91635e)

https://bugzilla.redhat.com/show_bug.cgi?id=1207659
Message-Id: <1c666c563fe614b2c61bb47abb6d33dbcab91316.1580824112.git.pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
---
 src/locking/lock_daemon.c        |  4 ++--
 src/logging/log_handler.c        |  3 +--
 src/network/leaseshelper.c       |  6 +-----
 src/qemu/qemu_agent.c            |  6 +-----
 src/qemu/qemu_backup.c           |  6 ++----
 src/qemu/qemu_block.c            |  9 +++------
 src/qemu/qemu_blockjob.c         |  3 +--
 src/qemu/qemu_checkpoint.c       |  9 +++------
 src/qemu/qemu_driver.c           |  3 +--
 src/qemu/qemu_firmware.c         | 12 ++++--------
 src/qemu/qemu_migration_params.c |  3 +--
 src/qemu/qemu_monitor_json.c     |  3 +--
 src/rpc/virnetserver.c           |  6 ++----
 src/rpc/virnetserverservice.c    |  3 +--
 src/util/virjson.c               | 13 ++-----------
 src/util/virlockspace.c          |  6 ++----
 src/util/virmacmap.c             |  8 ++++----
 tests/qemublocktest.c            |  3 +--
 tests/qemumonitorjsontest.c      |  5 ++---
 19 files changed, 35 insertions(+), 76 deletions(-)

diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
index 65c38139c4..75e24eb2f6 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -949,8 +949,8 @@ virLockDaemonPreExecRestart(const char *state_file,
         goto cleanup;
     }
 
-    if (!(lockspaces = virJSONValueNewArray()))
-        goto cleanup;
+    lockspaces = virJSONValueNewArray();
+
     if (virJSONValueObjectAppend(object, "lockspaces", lockspaces) < 0) {
         virJSONValueFree(lockspaces);
         goto cleanup;
diff --git a/src/logging/log_handler.c b/src/logging/log_handler.c
index 030c9d66e3..973c52c7cd 100644
--- a/src/logging/log_handler.c
+++ b/src/logging/log_handler.c
@@ -619,8 +619,7 @@ virLogHandlerPreExecRestart(virLogHandlerPtr handler)
     if (!ret)
         return NULL;
 
-    if (!(files = virJSONValueNewArray()))
-        goto error;
+    files = virJSONValueNewArray();
 
     if (virJSONValueObjectAppend(ret, "files", files) < 0) {
         virJSONValueFree(files);
diff --git a/src/network/leaseshelper.c b/src/network/leaseshelper.c
index f1a061066e..dd1d5f70ee 100644
--- a/src/network/leaseshelper.c
+++ b/src/network/leaseshelper.c
@@ -200,11 +200,7 @@ main(int argc, char **argv)
         break;
     }
 
-    if (!(leases_array_new = virJSONValueNewArray())) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("failed to create json"));
-        goto cleanup;
-    }
+    leases_array_new = virJSONValueNewArray();
 
     if (virLeaseReadCustomLeaseFile(leases_array_new, custom_lease_file,
                                     delete ? ip : NULL, &server_duid) < 0)
diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index 5fa8d24a91..f759785050 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -1203,9 +1203,6 @@ qemuAgentMakeStringsArray(const char **strings, unsigned int len)
     size_t i;
     virJSONValuePtr ret = virJSONValueNewArray(), str;
 
-    if (!ret)
-        return NULL;
-
     for (i = 0; i < len; i++) {
         str = virJSONValueNewString(strings[i]);
         if (!str)
@@ -1536,8 +1533,7 @@ qemuAgentSetVCPUsCommand(qemuAgentPtr mon,
     *nmodified = 0;
 
     /* create the key data array */
-    if (!(cpus = virJSONValueNewArray()))
-        goto cleanup;
+    cpus = virJSONValueNewArray();
 
     for (i = 0; i < ninfo; i++) {
         qemuAgentCPUInfoPtr in = &info[i];
diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c
index 8b1e9a7e19..2cc6ff7a42 100644
--- a/src/qemu/qemu_backup.c
+++ b/src/qemu/qemu_backup.c
@@ -180,8 +180,7 @@ qemuBackupDiskPrepareOneBitmapsChain(virDomainMomentDefPtr *incremental,
     g_autoptr(virJSONValue) ret = NULL;
     size_t incridx = 0;
 
-    if (!(ret = virJSONValueNewArray()))
-        return NULL;
+    ret = virJSONValueNewArray();
 
     if (!(bitmap = qemuBlockNamedNodeDataGetBitmapByName(blockNamedNodeData,
                                                          backingChain,
@@ -819,8 +818,7 @@ qemuBackupBegin(virDomainObjPtr vm,
         !(incremental = qemuBackupBeginCollectIncrementalCheckpoints(vm, def->incremental)))
         goto endjob;
 
-    if (!(actions = virJSONValueNewArray()))
-        goto endjob;
+    actions = virJSONValueNewArray();
 
     /* The 'chk' checkpoint must be rolled back if the transaction command
      * which creates it on disk is not executed or fails */
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index 13e240fdac..03f029368e 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -524,8 +524,7 @@ qemuBlockStorageSourceBuildHostsJSONSocketAddress(virStorageSourcePtr src,
     virStorageNetHostDefPtr host;
     size_t i;
 
-    if (!(servers = virJSONValueNewArray()))
-        return NULL;
+    servers = virJSONValueNewArray();
 
     for (i = 0; i < src->nhosts; i++) {
         host = src->hosts + i;
@@ -590,8 +589,7 @@ qemuBlockStorageSourceBuildHostsJSONInetSocketAddress(virStorageSourcePtr src)
     virStorageNetHostDefPtr host;
     size_t i;
 
-    if (!(servers = virJSONValueNewArray()))
-        return NULL;
+    servers = virJSONValueNewArray();
 
     for (i = 0; i < src->nhosts; i++) {
         host = src->hosts + i;
@@ -837,8 +835,7 @@ qemuBlockStorageSourceGetRBDProps(virStorageSourcePtr src,
         username = srcPriv->secinfo->s.aes.username;
         keysecret = srcPriv->secinfo->s.aes.alias;
         /* the auth modes are modelled after our old command line generator */
-        if (!(authmodes = virJSONValueNewArray()))
-            return NULL;
+        authmodes = virJSONValueNewArray();
 
         if (!(mode = virJSONValueNewString("cephx")) ||
             virJSONValueArrayAppend(authmodes, mode) < 0)
diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c
index e04fcf69d1..3dc9222a6f 100644
--- a/src/qemu/qemu_blockjob.c
+++ b/src/qemu/qemu_blockjob.c
@@ -1344,8 +1344,7 @@ qemuBlockJobProcessEventConcludedBackup(virQEMUDriverPtr driver,
         return;
 
     if (job->data.backup.bitmap) {
-        if (!(actions = virJSONValueNewArray()))
-            return;
+        actions = virJSONValueNewArray();
 
         if (qemuMonitorTransactionBitmapRemove(actions,
                                                job->disk->src->nodeformat,
diff --git a/src/qemu/qemu_checkpoint.c b/src/qemu/qemu_checkpoint.c
index 59b7f63fdc..c06bfe6a21 100644
--- a/src/qemu/qemu_checkpoint.c
+++ b/src/qemu/qemu_checkpoint.c
@@ -217,8 +217,7 @@ qemuCheckpointDiscardDiskBitmaps(virStorageSourcePtr src,
                     return -1;
             }
 
-            if (!(arr = virJSONValueNewArray()))
-                return -1;
+            arr = virJSONValueNewArray();
 
             if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(arr,
                                                                  n->nodeformat,
@@ -261,8 +260,7 @@ qemuCheckpointDiscardBitmaps(virDomainObjPtr vm,
     g_autoptr(GSList) relabelimages = NULL;
     GSList *next;
 
-    if (!(actions = virJSONValueNewArray()))
-        return -1;
+    actions = virJSONValueNewArray();
 
     qemuDomainObjEnterMonitor(driver, vm);
     blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon);
@@ -535,8 +533,7 @@ qemuCheckpointCreateCommon(virQEMUDriverPtr driver,
     if ((parent = virDomainCheckpointGetCurrent(vm->checkpoints)))
         (*def)->parent.parent_name = g_strdup(parent->def->name);
 
-    if (!(tmpactions = virJSONValueNewArray()))
-        return -1;
+    tmpactions = virJSONValueNewArray();
 
     if (qemuCheckpointAddActions(vm, tmpactions, parent, *def) < 0)
         return -1;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index f7ad2dca28..0667402ebb 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15619,8 +15619,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
     if (virDomainObjCheckActive(vm) < 0)
         return -1;
 
-    if (!(actions = virJSONValueNewArray()))
-        return -1;
+    actions = virJSONValueNewArray();
 
     if (blockdev &&
         !(blockNamedNodeData = qemuBlockGetNamedNodeData(vm, asyncJob)))
diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c
index 7fb57913e8..68e2c6b40f 100644
--- a/src/qemu/qemu_firmware.c
+++ b/src/qemu/qemu_firmware.c
@@ -651,8 +651,7 @@ qemuFirmwareInterfaceFormat(virJSONValuePtr doc,
     g_autoptr(virJSONValue) interfacesJSON = NULL;
     size_t i;
 
-    if (!(interfacesJSON = virJSONValueNewArray()))
-        return -1;
+    interfacesJSON = virJSONValueNewArray();
 
     for (i = 0; i < fw->ninterfaces; i++) {
         if (virJSONValueArrayAppendString(interfacesJSON,
@@ -799,8 +798,7 @@ qemuFirmwareTargetFormat(virJSONValuePtr doc,
     g_autoptr(virJSONValue) targetsJSON = NULL;
     size_t i;
 
-    if (!(targetsJSON = virJSONValueNewArray()))
-        return -1;
+    targetsJSON = virJSONValueNewArray();
 
     for (i = 0; i < fw->ntargets; i++) {
         qemuFirmwareTargetPtr t = fw->targets[i];
@@ -816,8 +814,7 @@ qemuFirmwareTargetFormat(virJSONValuePtr doc,
                                            virQEMUCapsArchToString(t->architecture)) < 0)
             return -1;
 
-        if (!(machines = virJSONValueNewArray()))
-            return -1;
+        machines = virJSONValueNewArray();
 
         for (j = 0; j < t->nmachines; j++) {
             if (virJSONValueArrayAppendString(machines,
@@ -851,8 +848,7 @@ qemuFirmwareFeatureFormat(virJSONValuePtr doc,
     g_autoptr(virJSONValue) featuresJSON = NULL;
     size_t i;
 
-    if (!(featuresJSON = virJSONValueNewArray()))
-        return -1;
+    featuresJSON = virJSONValueNewArray();
 
     for (i = 0; i < fw->nfeatures; i++) {
         if (virJSONValueArrayAppendString(featuresJSON,
diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c
index 9430ce1d00..45acf8cda2 100644
--- a/src/qemu/qemu_migration_params.c
+++ b/src/qemu/qemu_migration_params.c
@@ -785,8 +785,7 @@ qemuMigrationCapsToJSON(virBitmapPtr caps,
     qemuMigrationCapability bit;
     const char *name;
 
-    if (!(json = virJSONValueNewArray()))
-        return NULL;
+    json = virJSONValueNewArray();
 
     for (bit = 0; bit < QEMU_MIGRATION_CAP_LAST; bit++) {
         bool supported = false;
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 3fc0bcb80c..8cd98dbf26 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -4802,8 +4802,7 @@ int qemuMonitorJSONSendKey(qemuMonitorPtr mon,
     size_t i;
 
     /* create the key data array */
-    if (!(keys = virJSONValueNewArray()))
-        goto cleanup;
+    keys = virJSONValueNewArray();
 
     for (i = 0; i < nkeycodes; i++) {
         if (keycodes[i] > 0xffff) {
diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index 4122636805..c87dade1a8 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -603,8 +603,7 @@ virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv)
         goto error;
     }
 
-    if (!(services = virJSONValueNewArray()))
-        goto error;
+    services = virJSONValueNewArray();
 
     if (virJSONValueObjectAppend(object, "services", services) < 0) {
         virJSONValueFree(services);
@@ -622,8 +621,7 @@ virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv)
         }
     }
 
-    if (!(clients = virJSONValueNewArray()))
-        goto error;
+    clients = virJSONValueNewArray();
 
     if (virJSONValueObjectAppend(object, "clients", clients) < 0) {
         virJSONValueFree(clients);
diff --git a/src/rpc/virnetserverservice.c b/src/rpc/virnetserverservice.c
index 5d1178f899..0a003e5814 100644
--- a/src/rpc/virnetserverservice.c
+++ b/src/rpc/virnetserverservice.c
@@ -353,8 +353,7 @@ virJSONValuePtr virNetServerServicePreExecRestart(virNetServerServicePtr svc)
     if (virJSONValueObjectAppendNumberUint(object, "nrequests_client_max", svc->nrequests_client_max) < 0)
         goto error;
 
-    if (!(socks = virJSONValueNewArray()))
-        goto error;
+    socks = virJSONValueNewArray();
 
     if (virJSONValueObjectAppend(object, "socks", socks) < 0) {
         virJSONValueFree(socks);
diff --git a/src/util/virjson.c b/src/util/virjson.c
index 50993648eb..ca57df816f 100644
--- a/src/util/virjson.c
+++ b/src/util/virjson.c
@@ -561,10 +561,7 @@ virJSONValueNewNull(void)
 virJSONValuePtr
 virJSONValueNewArray(void)
 {
-    virJSONValuePtr val;
-
-    if (VIR_ALLOC(val) < 0)
-        return NULL;
+    virJSONValuePtr val = g_new0(virJSONValue, 1);
 
     val->type = VIR_JSON_TYPE_ARRAY;
 
@@ -1265,8 +1262,7 @@ virJSONValueNewArrayFromBitmap(virBitmapPtr bitmap)
     virJSONValuePtr ret;
     ssize_t pos = -1;
 
-    if (!(ret = virJSONValueNewArray()))
-        return NULL;
+    ret = virJSONValueNewArray();
 
     if (!bitmap)
         return ret;
@@ -1522,8 +1518,6 @@ virJSONValueCopy(const virJSONValue *in)
         break;
     case VIR_JSON_TYPE_ARRAY:
         out = virJSONValueNewArray();
-        if (!out)
-            return NULL;
         for (i = 0; i < in->data.array.nvalues; i++) {
             virJSONValuePtr val = NULL;
             if (!(val = virJSONValueCopy(in->data.array.values[i])))
@@ -1782,9 +1776,6 @@ virJSONParserHandleStartArray(void *ctx)
 
     VIR_DEBUG("parser=%p", parser);
 
-    if (!value)
-        return 0;
-
     if (virJSONParserInsertValue(parser, value) < 0) {
         virJSONValueFree(value);
         return 0;
diff --git a/src/util/virlockspace.c b/src/util/virlockspace.c
index 59d47daae8..a44377f89e 100644
--- a/src/util/virlockspace.c
+++ b/src/util/virlockspace.c
@@ -443,8 +443,7 @@ virJSONValuePtr virLockSpacePreExecRestart(virLockSpacePtr lockspace)
         virJSONValueObjectAppendString(object, "directory", lockspace->dir) < 0)
         goto error;
 
-    if (!(resources = virJSONValueNewArray()))
-        goto error;
+    resources = virJSONValueNewArray();
 
     if (virJSONValueObjectAppend(object, "resources", resources) < 0) {
         virJSONValueFree(resources);
@@ -479,8 +478,7 @@ virJSONValuePtr virLockSpacePreExecRestart(virLockSpacePtr lockspace)
             goto error;
         }
 
-        if (!(owners = virJSONValueNewArray()))
-            goto error;
+        owners = virJSONValueNewArray();
 
         if (virJSONValueObjectAppend(child, "owners", owners) < 0) {
             virJSONValueFree(owners);
diff --git a/src/util/virmacmap.c b/src/util/virmacmap.c
index cd74f67678..ec589334ea 100644
--- a/src/util/virmacmap.c
+++ b/src/util/virmacmap.c
@@ -206,10 +206,11 @@ virMACMapHashDumper(void *payload,
     size_t i;
     int ret = -1;
 
-    if (!(obj = virJSONValueNewObject()) ||
-        !(arr = virJSONValueNewArray()))
+    if (!(obj = virJSONValueNewObject()))
         goto cleanup;
 
+    arr = virJSONValueNewArray();
+
     for (i = 0; macs[i]; i++) {
         virJSONValuePtr m = virJSONValueNewString(macs[i]);
 
@@ -244,8 +245,7 @@ virMacMapDumpStrLocked(virMacMapPtr mgr,
     virJSONValuePtr arr;
     int ret = -1;
 
-    if (!(arr = virJSONValueNewArray()))
-        goto cleanup;
+    arr = virJSONValueNewArray();
 
     if (virHashForEach(mgr->macs, virMACMapHashDumper, arr) < 0)
         goto cleanup;
diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c
index ed8b061e2e..5946cd6c6b 100644
--- a/tests/qemublocktest.c
+++ b/tests/qemublocktest.c
@@ -733,8 +733,7 @@ testQemuCheckpointDeleteMerge(const void *opaque)
         return -1;
     }
 
-    if (!(actions = virJSONValueNewArray()))
-        return -1;
+    actions = virJSONValueNewArray();
 
     if (qemuCheckpointDiscardDiskBitmaps(data->chain,
                                          nodedata,
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 0334f83628..2c696a2e8b 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2948,9 +2948,8 @@ testQemuMonitorJSONTransaction(const void *opaque)
     if (!(test = qemuMonitorTestNewSchema(data->xmlopt, data->schema)))
         return -1;
 
-    if (!(actions = virJSONValueNewArray()) ||
-        !(mergebitmaps = virJSONValueNewArray()))
-        return -1;
+    actions = virJSONValueNewArray();
+    mergebitmaps = virJSONValueNewArray();
 
     if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(mergebitmaps, "node1", "bitmap1") < 0 ||
         qemuMonitorTransactionBitmapMergeSourceAddBitmap(mergebitmaps, "node2", "bitmap2") < 0)
-- 
2.25.0