mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-20 13:09:22 +00:00
tests: avoid referencing stale readdir pointer
The contents of 'struct dirent' are only valid until the next call to readdir() or closedir(). It is thus invalid to save a pointer to the 'd_name' field. Somehow this hasn't affected the test suite until recently when FreeBSD 12 started showing use of uninitialized memory resulting in test failures. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
26badd13e8
commit
29c4a3c753
@ -497,7 +497,7 @@ testQemuGetLatestCapsForArch(const char *arch,
|
|||||||
char *tmp = NULL;
|
char *tmp = NULL;
|
||||||
unsigned long maxver = 0;
|
unsigned long maxver = 0;
|
||||||
unsigned long ver;
|
unsigned long ver;
|
||||||
const char *maxname = NULL;
|
g_autofree char *maxname = NULL;
|
||||||
char *ret = NULL;
|
char *ret = NULL;
|
||||||
|
|
||||||
fullsuffix = g_strdup_printf("%s.%s", arch, suffix);
|
fullsuffix = g_strdup_printf("%s.%s", arch, suffix);
|
||||||
@ -522,7 +522,8 @@ testQemuGetLatestCapsForArch(const char *arch,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ver > maxver) {
|
if (ver > maxver) {
|
||||||
maxname = ent->d_name;
|
g_free(maxname);
|
||||||
|
maxname = g_strdup(ent->d_name);
|
||||||
maxver = ver;
|
maxver = ver;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user