iostream_pump_start(fuzz_ctx->pump);
return sfd[1];
}
+
+
+const char *fuzzer_t_strndup_replace_zero(
+ const uint8_t *data, size_t size, char subst)
+{
+ char *out = t_malloc_no0(size + 1);
+ for (size_t index = 0; index < size; ++index) {
+ uint8_t ch = data[index];
+ out[index] = ch == 0 ? subst : (char)ch;
+ }
+ return out;
+}
\ No newline at end of file
struct fuzzer_context fuzz_ctx; \
fuzzer_init(&fuzz_ctx); T_BEGIN {
+const char *fuzzer_t_strndup_replace_zero(
+ const uint8_t *_param_data, size_t _param_size, char subst);
+
#define FUZZ_BEGIN_STR(str_arg) \
FUZZ_BEGIN_DATA(const uint8_t *_param_data, size_t _param_size) \
- str_arg = t_strndup(_param_data, _param_size);
+ str_arg = fuzzer_t_strndup_replace_zero(_param_data, _param_size, '\\');
#define FUZZ_BEGIN_FD \
FUZZ_BEGIN_DATA(const uint8_t *_param_data, size_t _param_size) \