mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
fuzz: Expect the cmdline in a freeable GString
In the initial FuzzTarget, get_init_cmdline returned a char *. With this API, we had no guarantee about where the string came from. For example, i440fx-qtest-reboot-fuzz simply returned a pointer to a string literal, while the QOS-based targets build the arguments out in a GString an return the gchar *str pointer. Since we did not try to free the cmdline, we have a leak for any targets that do not simply return string literals. Clean up this mess by forcing fuzz-targets to return a GString, that we can free. Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Message-Id: <20200714174616.20709-1-alxndr@bu.edu> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
15c51f724e
commit
f5ec79f5e0
4 changed files with 14 additions and 15 deletions
|
@ -66,7 +66,7 @@ void *qos_allocate_objects(QTestState *qts, QGuestAllocator **p_alloc)
|
|||
return allocate_objects(qts, current_path + 1, p_alloc);
|
||||
}
|
||||
|
||||
static const char *qos_build_main_args(void)
|
||||
static GString *qos_build_main_args(void)
|
||||
{
|
||||
char **path = fuzz_path_vec;
|
||||
QOSGraphNode *test_node;
|
||||
|
@ -88,7 +88,7 @@ static const char *qos_build_main_args(void)
|
|||
/* Prepend the arguments that we need */
|
||||
g_string_prepend(cmd_line,
|
||||
TARGET_NAME " -display none -machine accel=qtest -m 64 ");
|
||||
return cmd_line->str;
|
||||
return cmd_line;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -189,7 +189,7 @@ static void walk_path(QOSGraphNode *orig_path, int len)
|
|||
g_free(path_str);
|
||||
}
|
||||
|
||||
static const char *qos_get_cmdline(FuzzTarget *t)
|
||||
static GString *qos_get_cmdline(FuzzTarget *t)
|
||||
{
|
||||
/*
|
||||
* Set a global variable that we use to identify the qos_path for our
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue