aboutsummaryrefslogtreecommitdiffstats
path: root/executor
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-06-24 14:27:07 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-06-24 15:05:22 +0000
commit215eef4ad85fb6124af70d1e5c9729b69554a32b (patch)
tree72c63a1257a13cee00737fbb76d71d72215c940d /executor
parent0c0f0b4b3be7a004ae46afe61a8f5e3ad2469e71 (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.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;