diff options
author | Alexander Bulekov <alxndr@bu.edu> | 2020-07-14 13:46:16 -0400 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2020-07-17 10:44:23 +0200 |
commit | f5ec79f5e0a3a307fc2a11b3ba8066a2d0a90233 (patch) | |
tree | 5b16a8ec3a9689c0d67be2f600a2a4ad61a579e0 /tests/qtest/fuzz/fuzz.h | |
parent | 15c51f724ec61ab6a6910c41113d6d07164b6ca4 (diff) |
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>
Diffstat (limited to 'tests/qtest/fuzz/fuzz.h')
-rw-r--r-- | tests/qtest/fuzz/fuzz.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/qtest/fuzz/fuzz.h b/tests/qtest/fuzz/fuzz.h index 72d5710f6c..9ca3d107c5 100644 --- a/tests/qtest/fuzz/fuzz.h +++ b/tests/qtest/fuzz/fuzz.h @@ -50,10 +50,10 @@ typedef struct FuzzTarget { /* - * returns the arg-list that is passed to qemu/softmmu init() - * Cannot be NULL + * Returns the arguments that are passed to qemu/softmmu init(). Freed by + * the caller. */ - const char* (*get_init_cmdline)(struct FuzzTarget *); + GString *(*get_init_cmdline)(struct FuzzTarget *); /* * will run once, prior to running qemu/softmmu init. |