[PATCH 4/6] locking: sanlock: Avoid use of VIR_ALLOC_VAR for 'struct sanlk_resource'

Peter Krempa pkrempa at redhat.com
Wed Feb 3 13:34:24 UTC 2021


In both cases we need memory for a 'struct sanlk_resource' followed by
one 'struct sanlk_disk', thus there's no risk of overflow.

Use g_malloc0 and sizeof() to allocate the memory instead of
VIR_ALLOC_VAR.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/locking/lock_driver_sanlock.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index f35a0c065c..7319f56819 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -531,8 +531,7 @@ static int virLockManagerSanlockAddLease(virLockManagerPtr lock,
     g_autofree struct sanlk_resource *res = NULL;
     size_t i;

-    if (VIR_ALLOC_VAR(res, struct sanlk_disk, 1) < 0)
-        return -1;
+    res = g_malloc0(sizeof(struct sanlk_resource) + sizeof(struct sanlk_disk));

     res->flags = shared ? SANLK_RES_SHARED : 0;
     res->num_disks = 1;
@@ -591,8 +590,7 @@ virLockManagerSanlockAddDisk(virLockManagerSanlockDriverPtr driver,
         return -1;
     }

-    if (VIR_ALLOC_VAR(res, struct sanlk_disk, 1) < 0)
-        return -1;
+    res = g_malloc0(sizeof(struct sanlk_resource) + sizeof(struct sanlk_disk));

     res->flags = shared ? SANLK_RES_SHARED : 0;
     res->num_disks = 1;
-- 
2.29.2




More information about the libvir-list mailing list