mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
util: Use glib memory functions in virFileGetXAttrQuiet
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
b668054209
commit
569fcd6e2e
@ -4327,8 +4327,7 @@ virFileGetXAttrQuiet(const char *path,
|
||||
const char *name,
|
||||
char **value)
|
||||
{
|
||||
char *buf = NULL;
|
||||
int ret = -1;
|
||||
g_autofree char *buf = NULL;
|
||||
|
||||
/* We might be racing with somebody who sets the same attribute. */
|
||||
while (1) {
|
||||
@ -4337,15 +4336,14 @@ virFileGetXAttrQuiet(const char *path,
|
||||
|
||||
/* The first call determines how many bytes we need to allocate. */
|
||||
if ((need = getxattr(path, name, NULL, 0)) < 0)
|
||||
goto cleanup;
|
||||
return -1;
|
||||
|
||||
if (VIR_REALLOC_N_QUIET(buf, need + 1) < 0)
|
||||
goto cleanup;
|
||||
buf = g_renew(char, buf, need + 1);
|
||||
|
||||
if ((got = getxattr(path, name, buf, need)) < 0) {
|
||||
if (errno == ERANGE)
|
||||
continue;
|
||||
goto cleanup;
|
||||
return -1;
|
||||
}
|
||||
|
||||
buf[got] = '\0';
|
||||
@ -4353,10 +4351,7 @@ virFileGetXAttrQuiet(const char *path,
|
||||
}
|
||||
|
||||
*value = g_steal_pointer(&buf);
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(buf);
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user