Switch the secret value to 'g_autofree' for handling of the memory and
clear it out using memset.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/storage/storage_backend_rbd.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index 22f5c78591..5af6136c4a 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -185,7 +185,7 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
int ret = -1;
virStoragePoolSourcePtr source = &def->source;
virStorageAuthDefPtr authdef = source->auth;
- unsigned char *secret_value = NULL;
+ g_autofree unsigned char *secret_value = NULL;
size_t secret_value_size = 0;
VIR_AUTODISPOSE_STR rados_key = NULL;
g_auto(virBuffer) mon_host = VIR_BUFFER_INITIALIZER;
@@ -215,6 +215,7 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
goto cleanup;
rados_key = g_base64_encode(secret_value, secret_value_size);
+ memset(secret_value, 0, secret_value_size);
if (virStorageBackendRBDRADOSConfSet(ptr->cluster,
"key", rados_key) < 0)
@@ -325,8 +326,6 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
ret = 0;
cleanup:
- VIR_DISPOSE_N(secret_value, secret_value_size);
-
virObjectUnref(conn);
return ret;
}
--
2.29.2