From 8bc370156a23712627ca75a1179de1988a5c4461 Mon Sep 17 00:00:00 2001 From: Dominik Loidolt <dominik.loidolt@univie.ac.at> Date: Wed, 22 Jan 2025 11:23:41 +0100 Subject: [PATCH] TODO: remove stdout print on fuzzing --- programs/cmp_guess.c | 7 +++++++ programs/cmp_io.c | 8 ++++++++ programs/cmp_tool.c | 5 +++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/programs/cmp_guess.c b/programs/cmp_guess.c index c76d1da..7c0f7fc 100644 --- a/programs/cmp_guess.c +++ b/programs/cmp_guess.c @@ -35,6 +35,13 @@ #define CMP_GUESS_MAX_CAL_STEPS 20274 +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +/* Redefine (f)printf to do nothing */ +__extension__ +#define printf(...) do {} while (0) +#define fprintf(...) do {} while (0) +#endif + /* how often the model is updated before it is rested */ static int num_model_updates = CMP_GUESS_N_MODEL_UPDATE_DEF; diff --git a/programs/cmp_io.c b/programs/cmp_io.c index 8cad7b0..32eb996 100644 --- a/programs/cmp_io.c +++ b/programs/cmp_io.c @@ -292,9 +292,11 @@ int write_data_to_file(const void *buf, uint32_t buf_size, const char *output_pr } if (flags & CMP_IO_VERBOSE_EXTRA && !(flags & CMP_IO_BINARY)) { +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION printf("\n"); fwrite(output_file_data, 1, output_file_size, stdout); printf("\n"); +#endif } free(tmp_buf); @@ -499,6 +501,12 @@ int case_insensitive_compare(const char *s1, const char *s2) { size_t i; + if(s1 == NULL) + abort(); + + if(s2 == NULL) + abort(); + for (i = 0; ; ++i) { unsigned int x1 = (unsigned char)s1[i]; unsigned int x2 = (unsigned char)s2[i]; diff --git a/programs/cmp_tool.c b/programs/cmp_tool.c index 6abf0e9..522fbd1 100644 --- a/programs/cmp_tool.c +++ b/programs/cmp_tool.c @@ -153,6 +153,7 @@ static uint32_t model_counter; __extension__ #define printf(...) do {} while (0) #define fprintf(...) do {} while (0) +#define fflush(...) do {} while (0) int CMP_MAIN(int argc, char **argv); @@ -649,7 +650,7 @@ static int guess_cmp_pars(struct rdcu_cfg *rcfg, struct cmp_par *chunk_par, printf("Search for a good set of compression parameters (level: %d) ... ", guess_level); fflush(stdout); - if (!case_insensitive_compare(guess_option, "rdcu")) { + if (guess_option && !case_insensitive_compare(guess_option, "rdcu")) { if (add_rdcu_pars) data_type = DATA_TYPE_IMAGETTE_ADAPTIVE; else @@ -658,7 +659,7 @@ static int guess_cmp_pars(struct rdcu_cfg *rcfg, struct cmp_par *chunk_par, rcfg->cmp_mode = CMP_GUESS_DEF_MODE_MODEL; else rcfg->cmp_mode = CMP_GUESS_DEF_MODE_DIFF; - } else if (!case_insensitive_compare(guess_option, "chunk")) { + } else if (guess_option && !case_insensitive_compare(guess_option, "chunk")) { data_type = DATA_TYPE_CHUNK; } else { data_type = DATA_TYPE_IMAGETTE; -- GitLab