diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-06-24 14:27:07 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-06-24 15:05:22 +0000 |
| commit | 215eef4ad85fb6124af70d1e5c9729b69554a32b (patch) | |
| tree | 72c63a1257a13cee00737fbb76d71d72215c940d /executor | |
| parent | 0c0f0b4b3be7a004ae46afe61a8f5e3ad2469e71 (diff) | |
syz-manager: support stdin as port forwarding result
It is returned from vm/gvisor.
Diffstat (limited to 'executor')
| -rw-r--r-- | executor/executor_runner.h | 18 |
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; |
