1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

util: authconfig: Use automatic pointer clearing for virAuthConfig

Fix and clean up the error paths in virAuthConfigNew*.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
Peter Krempa 2022-12-08 14:07:19 +01:00
parent 22e9e238d5
commit 5cb0e7bec2

View File

@ -37,23 +37,17 @@ VIR_LOG_INIT("util.authconfig");
virAuthConfig *virAuthConfigNew(const char *path)
{
virAuthConfig *auth;
auth = g_new0(virAuthConfig, 1);
g_autoptr(virAuthConfig) auth = g_new0(virAuthConfig, 1);
auth->path = g_strdup(path);
if (!(auth->keyfile = g_key_file_new()))
goto error;
return NULL;
if (!g_key_file_load_from_file(auth->keyfile, path, 0, NULL))
goto error;
return NULL;
return auth;
error:
virAuthConfigFree(auth);
return NULL;
return g_steal_pointer(&auth);
}
@ -61,23 +55,17 @@ virAuthConfig *virAuthConfigNewData(const char *path,
const char *data,
size_t len)
{
virAuthConfig *auth;
auth = g_new0(virAuthConfig, 1);
g_autoptr(virAuthConfig) auth = g_new0(virAuthConfig, 1);
auth->path = g_strdup(path);
if (!(auth->keyfile = g_key_file_new()))
goto error;
return NULL;
if (!g_key_file_load_from_data(auth->keyfile, data, len, 0, NULL))
goto error;
return NULL;
return auth;
error:
virAuthConfigFree(auth);
return NULL;
return g_steal_pointer(&auth);
}