aboutsummaryrefslogtreecommitdiff
path: root/tests/qtest/fuzz/fuzz.h
diff options
context:
space:
mode:
authorAlexander Bulekov <alxndr@bu.edu>2020-07-14 13:46:16 -0400
committerThomas Huth <thuth@redhat.com>2020-07-17 10:44:23 +0200
commitf5ec79f5e0a3a307fc2a11b3ba8066a2d0a90233 (patch)
tree5b16a8ec3a9689c0d67be2f600a2a4ad61a579e0 /tests/qtest/fuzz/fuzz.h
parent15c51f724ec61ab6a6910c41113d6d07164b6ca4 (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.h6
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.