aboutsummaryrefslogtreecommitdiffstats
path: root/executor/executor_runner.h
diff options
context:
space:
mode:
Diffstat (limited to 'executor/executor_runner.h')
-rw-r--r--executor/executor_runner.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/executor/executor_runner.h b/executor/executor_runner.h
index 55a6c422c..385b111c8 100644
--- a/executor/executor_runner.h
+++ b/executor/executor_runner.h
@@ -765,11 +765,23 @@ static void SigsegvHandler(int sig, siginfo_t* info, void* ucontext)
static void runner(char** argv, int argc)
{
- if (argc != 5)
- fail("usage: syz-executor runner <name> <manager-addr> <manager-port>");
+ const char* const usage_msg = "usage: syz-executor runner <name> <manager-addr> "
+ "<manager-port> OR syz-executor runner <name> stdin";
+ if (argc < 4 || argc > 5)
+ fail(usage_msg);
+
const char* const name = argv[2];
const char* const manager_addr = argv[3];
- const char* const manager_port = argv[4];
+ const char* manager_port = NULL;
+
+ if (strcmp(manager_addr, "stdin") == 0) {
+ // Do not expect a port number for stdin.
+ if (argc == 5)
+ fail(usage_msg);
+ } else if (argc != 5)
+ fail(usage_msg);
+ else
+ manager_port = argv[4];
struct rlimit rlim;
rlim.rlim_cur = rlim.rlim_max = kFdLimit;