summaryrefslogtreecommitdiff
path: root/libhfuzz/persistent.c
diff options
context:
space:
mode:
authorRobert Swiecki <robert@swiecki.net>2017-06-01 15:59:15 +0200
committerRobert Swiecki <robert@swiecki.net>2017-06-01 15:59:15 +0200
commitae6e6f76f44e83b2d7befaf150c1bb1759cc8b64 (patch)
tree0821f70a29c7060075d1ab0dd3f82b99b18e0ddb /libhfuzz/persistent.c
parent74c23a8eb90432624334b877ca8eb12421afc089 (diff)
parente405b77c0ae1ad5de018f0a26ce6180602519471 (diff)
downloadhonggfuzz-ae6e6f76f44e83b2d7befaf150c1bb1759cc8b64.tar.gz
Merge
Diffstat (limited to 'libhfuzz/persistent.c')
-rw-r--r--libhfuzz/persistent.c17
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;