diff options
author | Robert Swiecki <robert@swiecki.net> | 2017-06-01 15:59:15 +0200 |
---|---|---|
committer | Robert Swiecki <robert@swiecki.net> | 2017-06-01 15:59:15 +0200 |
commit | ae6e6f76f44e83b2d7befaf150c1bb1759cc8b64 (patch) | |
tree | 0821f70a29c7060075d1ab0dd3f82b99b18e0ddb /libhfuzz/persistent.c | |
parent | 74c23a8eb90432624334b877ca8eb12421afc089 (diff) | |
parent | e405b77c0ae1ad5de018f0a26ce6180602519471 (diff) | |
download | honggfuzz-ae6e6f76f44e83b2d7befaf150c1bb1759cc8b64.tar.gz |
Merge
Diffstat (limited to 'libhfuzz/persistent.c')
-rw-r--r-- | libhfuzz/persistent.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libhfuzz/persistent.c b/libhfuzz/persistent.c index 74ce9246..da9432f4 100644 --- a/libhfuzz/persistent.c +++ b/libhfuzz/persistent.c @@ -83,10 +83,21 @@ int main(int argc, char **argv) } if (fcntl(_HF_PERSISTENT_FD, F_GETFD) == -1 && errno == EBADF) { - LOG_I("Accepting input from stdin\n" - "Usage for fuzzing: honggfuzz -P [flags] -- %s", argv[0]); + int in_fd = STDIN_FILENO; + const char *fname = "[STDIN]"; + if (argc > 1) { + fname = argv[argc - 1]; + if ((in_fd = open(argv[argc - 1], O_RDONLY)) == -1) { + PLOG_W("Cannot open '%s' as input, using stdin", argv[argc - 1]); + in_fd = STDIN_FILENO; + fname = "[STDIN]"; + } + } + + LOG_I("Accepting input from '%s'\n" + "Usage for fuzzing: honggfuzz -P [flags] -- %s", fname, argv[0]); - ssize_t len = files_readFromFd(STDIN_FILENO, buf, sizeof(buf)); + ssize_t len = files_readFromFd(in_fd, buf, sizeof(buf)); if (len < 0) { LOG_E("Couldn't read data from stdin: %s", strerror(errno)); return -1; |