diff options
Diffstat (limited to 'src/fuzz-wrapfd.h')
-rw-r--r-- | src/fuzz-wrapfd.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/fuzz-wrapfd.h b/src/fuzz-wrapfd.h new file mode 100644 index 0000000..d0dea88 --- /dev/null +++ b/src/fuzz-wrapfd.h @@ -0,0 +1,27 @@ +#ifndef FUZZ_WRAPFD_H +#define FUZZ_WRAPFD_H + +#include "includes.h" +#include "buffer.h" + +enum wrapfd_mode { + UNUSED = 0, + COMMONBUF, // using the common buffer + DUMMY, // reads return fixed output, of random length +}; + +// buf is a common buffer read by all wrapped FDs. doesn't take ownership of buf +void wrapfd_setup(buffer *buf); +void wrapfd_setseed(uint32_t seed); +int wrapfd_new_fuzzinput(void); +int wrapfd_new_dummy(void); + +// called via #defines for read/write/select +int wrapfd_read(int fd, void *out, size_t count); +int wrapfd_write(int fd, const void* in, size_t count); +int wrapfd_select(int nfds, fd_set *readfds, fd_set *writefds, + fd_set *exceptfds, struct timeval *timeout); +int wrapfd_close(int fd); +int fuzz_kill(pid_t pid, int sig); + +#endif // FUZZ_WRAPFD_H |