From 9ff224d05d544a7fbd8f377d4f6f9eabc29e268f Mon Sep 17 00:00:00 2001 From: ailin-nemui Date: Tue, 10 Sep 2019 13:08:35 +0200 Subject: [PATCH] silence glib log output during fuzzing on oss-fuzz --- src/fe-fuzz/Makefile.am | 3 +++ src/fe-fuzz/fe-common/core/Makefile.am | 1 + src/fe-fuzz/fe-common/core/meson.build | 1 + src/fe-fuzz/fe-common/core/theme-load.c | 4 ++++ src/fe-fuzz/irc/core/Makefile.am | 1 + src/fe-fuzz/irc/core/event-get-params.c | 4 ++++ src/fe-fuzz/irc/core/meson.build | 1 + src/fe-fuzz/irssi.c | 4 ++++ src/fe-fuzz/meson.build | 3 +++ src/fe-fuzz/null-logger.c | 16 ++++++++++++++++ src/fe-fuzz/null-logger.h | 6 ++++++ src/fe-fuzz/server.c | 4 ++++ 12 files changed, 48 insertions(+) create mode 100644 src/fe-fuzz/null-logger.c create mode 100644 src/fe-fuzz/null-logger.h diff --git a/src/fe-fuzz/Makefile.am b/src/fe-fuzz/Makefile.am index e72b8723..7ce2fcdd 100644 --- a/src/fe-fuzz/Makefile.am +++ b/src/fe-fuzz/Makefile.am @@ -17,6 +17,7 @@ irssi_fuzz_LDADD = \ irssi_fuzz_SOURCES = \ irssi.c \ + null-logger.c \ ../fe-text/module-formats.c server_fuzz_DEPENDENCIES = @COMMON_LIBS@ @@ -28,7 +29,9 @@ server_fuzz_LDADD = \ server_fuzz_SOURCES = \ server.c \ + null-logger.c \ ../fe-text/module-formats.c noinst_HEADERS = \ + null-logger.h \ ../fe-text/module-formats.h diff --git a/src/fe-fuzz/fe-common/core/Makefile.am b/src/fe-fuzz/fe-common/core/Makefile.am index 692e95cf..da8731b9 100644 --- a/src/fe-fuzz/fe-common/core/Makefile.am +++ b/src/fe-fuzz/fe-common/core/Makefile.am @@ -22,6 +22,7 @@ LDADD = \ $(FUZZER_LIBS) theme_load_fuzz_SOURCES = \ + ../../null-logger.c \ theme-load.c \ $(top_srcdir)/src/fe-text/module-formats.c diff --git a/src/fe-fuzz/fe-common/core/meson.build b/src/fe-fuzz/fe-common/core/meson.build index 8e321e8b..893f5937 100644 --- a/src/fe-fuzz/fe-common/core/meson.build +++ b/src/fe-fuzz/fe-common/core/meson.build @@ -1,6 +1,7 @@ # this file is part of irssi executable('theme-load-fuzz', files( + '../../null-logger.c', 'theme-load.c', '../../../fe-text/module-formats.c', ), diff --git a/src/fe-fuzz/fe-common/core/theme-load.c b/src/fe-fuzz/fe-common/core/theme-load.c index fbb35684..faa063bb 100644 --- a/src/fe-fuzz/fe-common/core/theme-load.c +++ b/src/fe-fuzz/fe-common/core/theme-load.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -38,6 +39,9 @@ int LLVMFuzzerInitialize(int *argc, char ***argv) { char *irssi_argv[] = {*argv[0], "--home", "/tmp/irssi", NULL}; int irssi_argc = sizeof(irssi_argv) / sizeof(char *) - 1; +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + g_log_set_null_logger(); +#endif core_register_options(); fe_common_core_register_options(); args_execute(irssi_argc, irssi_argv); diff --git a/src/fe-fuzz/irc/core/Makefile.am b/src/fe-fuzz/irc/core/Makefile.am index b2e1ea97..d66c2479 100644 --- a/src/fe-fuzz/irc/core/Makefile.am +++ b/src/fe-fuzz/irc/core/Makefile.am @@ -22,6 +22,7 @@ LDADD = \ $(FUZZER_LIBS) event_get_params_fuzz_SOURCES = \ + ../../null-logger.c \ event-get-params.c \ $(top_srcdir)/src/fe-text/module-formats.c diff --git a/src/fe-fuzz/irc/core/event-get-params.c b/src/fe-fuzz/irc/core/event-get-params.c index 740602d1..3cdb789f 100644 --- a/src/fe-fuzz/irc/core/event-get-params.c +++ b/src/fe-fuzz/irc/core/event-get-params.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -35,6 +36,9 @@ #include int LLVMFuzzerInitialize(int *argc, char ***argv) { +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + g_log_set_null_logger(); +#endif core_register_options(); fe_common_core_register_options(); /* no args */ diff --git a/src/fe-fuzz/irc/core/meson.build b/src/fe-fuzz/irc/core/meson.build index 1656523c..6a47e07d 100644 --- a/src/fe-fuzz/irc/core/meson.build +++ b/src/fe-fuzz/irc/core/meson.build @@ -2,6 +2,7 @@ executable('event-get-params-fuzz', files( + '../../null-logger.c', 'event-get-params.c', '../../../fe-text/module-formats.c', ), diff --git a/src/fe-fuzz/irssi.c b/src/fe-fuzz/irssi.c index 1c9f6c5f..6f79223a 100644 --- a/src/fe-fuzz/irssi.c +++ b/src/fe-fuzz/irssi.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -34,6 +35,9 @@ #include int LLVMFuzzerInitialize(int *argc, char ***argv) { +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + g_log_set_null_logger(); +#endif core_register_options(); fe_common_core_register_options(); /* no args */ diff --git a/src/fe-fuzz/meson.build b/src/fe-fuzz/meson.build index 1f6427db..7fac025d 100644 --- a/src/fe-fuzz/meson.build +++ b/src/fe-fuzz/meson.build @@ -5,6 +5,7 @@ subdir('fe-common') executable('irssi-fuzz', files( + 'null-logger.c', 'irssi.c', '../fe-text/module-formats.c', ), @@ -23,6 +24,7 @@ executable('irssi-fuzz', executable('server-fuzz', files( + 'null-logger.c', 'server.c', '../fe-text/module-formats.c', ), @@ -44,5 +46,6 @@ executable('server-fuzz', ) # noinst_headers = files( +# 'null-logger.h', # '../fe-text/module-formats.h', # ) diff --git a/src/fe-fuzz/null-logger.c b/src/fe-fuzz/null-logger.c new file mode 100644 index 00000000..dd88b84a --- /dev/null +++ b/src/fe-fuzz/null-logger.c @@ -0,0 +1,16 @@ +#include + +#include + +static void null_logger(const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data) +{ + return; +} + +void g_log_set_null_logger(void) +{ + g_log_set_default_handler(null_logger, NULL); +} diff --git a/src/fe-fuzz/null-logger.h b/src/fe-fuzz/null-logger.h new file mode 100644 index 00000000..d27eeffa --- /dev/null +++ b/src/fe-fuzz/null-logger.h @@ -0,0 +1,6 @@ +#ifndef IRSSI_FE_FUZZ_NULL_LOGGER_H +#define IRSSI_FE_FUZZ_NULL_LOGGER_H + +void g_log_set_null_logger(void); + +#endif diff --git a/src/fe-fuzz/server.c b/src/fe-fuzz/server.c index 8e2b651c..e8caafa0 100644 --- a/src/fe-fuzz/server.c +++ b/src/fe-fuzz/server.c @@ -41,6 +41,7 @@ #include #include #include +#include /* irc.c */ void irc_init(void); @@ -143,6 +144,9 @@ void test_server() { } int LLVMFuzzerInitialize(int *argc, char ***argv) { +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + g_log_set_null_logger(); +#endif core_register_options(); fe_common_core_register_options(); /* no args */