[PATCH 20/25] virJSONValueArrayAppend: Clear pointer when taking ownership of passed value

Michal Privoznik mprivozn at redhat.com
Mon Feb 15 09:11:19 UTC 2021


On 2/12/21 6:55 PM, Peter Krempa wrote:
> The parent array takes ownership of the inserted value once all checks
> pass. Don't make the callers second-guess when that happens and modify
> the function to take a double pointer so that it can be cleared once the
> ownership is taken.
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>   src/locking/lock_daemon.c            |  3 +--
>   src/logging/log_handler.c            |  3 +--
>   src/network/leaseshelper.c           |  3 +--
>   src/node_device/node_device_driver.c |  2 +-
>   src/qemu/qemu_agent.c                |  7 ++-----
>   src/qemu/qemu_block.c                | 16 ++++------------
>   src/qemu/qemu_command.c              |  3 +--
>   src/qemu/qemu_firmware.c             |  4 +---
>   src/qemu/qemu_migration_params.c     |  4 +---
>   src/qemu/qemu_monitor_json.c         | 11 +++--------
>   src/rpc/virnetserver.c               |  6 ++----
>   src/rpc/virnetserverservice.c        |  3 +--
>   src/util/virjson.c                   | 12 +++++-------
>   src/util/virjson.h                   |  3 ++-
>   src/util/virlease.c                  |  2 +-
>   src/util/virlockspace.c              |  6 ++----
>   src/util/virmacmap.c                 |  6 ++----
>   tests/testutilsqemuschema.c          |  3 +--
>   18 files changed, 32 insertions(+), 65 deletions(-)

I think the following should be squashed in:

diff --git i/src/qemu/qemu_monitor_json.c w/src/qemu/qemu_monitor_json.c
index 924e03b4da..2e040a2bc1 100644
--- i/src/qemu/qemu_monitor_json.c
+++ w/src/qemu/qemu_monitor_json.c
@@ -7580,7 +7580,6 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,

   cleanup:
      VIR_FREE(tlsalias);
-    virJSONValueFree(addr);
      virJSONValueFree(data);
      virJSONValueFree(backend);
      return ret;
diff --git i/src/util/virjson.c w/src/util/virjson.c
index 5b3aa49a7f..69b3c3c63f 100644
--- i/src/util/virjson.c
+++ w/src/util/virjson.c
@@ -298,8 +298,7 @@ virJSONValueObjectAddVArgs(virJSONValuePtr obj,
                  return -1;
              }

-            if ((rc = virJSONValueObjectAppend(obj, key, val)) == 0)
-                *val = NULL;
+            rc = virJSONValueObjectAppend(obj, key, val);
          }   break;

          case 'M':
@@ -2088,8 +2087,6 @@ virJSONValueObjectDeflattenWorker(const char *key,
          if (virJSONValueObjectAppend(retobj, key, &newval) < 0)
              return -1;

-        newval = NULL;
-
          return 0;
      }



Michal




More information about the libvir-list mailing list