[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pending fuzzing patches (was Re: [PATCH 2/2] fuzz: log the arguments

From: Thomas Huth
Subject: Re: pending fuzzing patches (was Re: [PATCH 2/2] fuzz: log the arguments used to initialize QEMU)
Date: Mon, 18 Jan 2021 10:30:03 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

On 18/01/2021 09.43, Paolo Bonzini wrote:
On 17/01/21 21:10, Alexander Bulekov wrote:
This is useful for building reproducers. Instead checking the code or
the QEMU_FUZZ_ARGS, the arguments are at the top of the crash log.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
  tests/qtest/fuzz/fuzz.c | 11 ++++++++++-
  1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c
index 238866a037..496d11a231 100644
--- a/tests/qtest/fuzz/fuzz.c
+++ b/tests/qtest/fuzz/fuzz.c
@@ -159,6 +159,8 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char ***envp)
      char *target_name;
      const char *bindir;
      char *datadir;
+    GString *cmd_line;
+    gchar *pretty_cmd_line;
      bool serialize = false;
      /* Initialize qgraph and modules */
@@ -217,7 +219,7 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char ***envp)
      /* Run QEMU's softmmu main with the fuzz-target dependent arguments */
-    GString *cmd_line = fuzz_target->get_init_cmdline(fuzz_target);
+    cmd_line = fuzz_target->get_init_cmdline(fuzz_target);
      g_string_append_printf(cmd_line, " %s -qtest /dev/null ",
                             getenv("QTEST_LOG") ? "" : "-qtest-log none");
@@ -226,6 +228,13 @@ int LLVMFuzzerInitialize(int *argc, char ***argv, char ***envp)
      wordexp(cmd_line->str, &result, 0);
      g_string_free(cmd_line, true);
+    if (getenv("QTEST_LOG")) {
+        pretty_cmd_line  = g_strjoinv(" ", result.we_wordv + 1);
+        printf("Starting %s with Arguments: %s\n",
+                result.we_wordv[0], pretty_cmd_line);
+        g_free(pretty_cmd_line);
+    }
      qemu_init(result.we_wordc, result.we_wordv, NULL);
      /* re-enable the rcu atfork, which was previously disabled in qemu_init */

Hi Alexander, can you send _me_ a pull request for all the pending fuzzing patches?  I haven't paid much attention, but I have seen external contributions and I have the feeling that they aren't being applied/reviewed promptly.

I'm normally taking the fuzzing patches through the qtest tree (and also merged some contributions last week, see 22ec0c696fd28e and the following commits) ... which patch series that got missed did you have in mind?

Anyway, the amount of fuzzer patches seems to have increased during the last weeks, and I'm not very familiar with the fuzzing stuff and also sometimes I do not get CC:-ed on fuzzing patches, so it might make sense indeed that Alexander now gathers the fuzzing patches and starts sending pull requests for these. Alexander, do you want to have a try now?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]