aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-06-25 11:08:48 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-06-25 12:24:31 +0000
commit115165ffb1aa821fec75f7229ab4e81e20584745 (patch)
treec4271aa40bcaac5e350707ea97bf091cab938e83
parent20dfeeccf56975c0bc5e488d897dfd90e2650641 (diff)
Revert "syz-manager: support stdin as port forwarding result"
This reverts commit 215eef4ad85fb6124af70d1e5c9729b69554a32b. The gvisor "stdin" address still crashes in executor Connection::Connect on atoi(ports) with ports == NULL. The gvisor "stdin" address is not tested, so it's better to make it less special rather than add more special cases in manager, executor, and now also in Connection to handle it. It still may crash in future after some changes.
-rw-r--r--executor/executor_runner.h18
-rw-r--r--syz-manager/manager.go8
2 files changed, 5 insertions, 21 deletions
diff --git a/executor/executor_runner.h b/executor/executor_runner.h
index 385b111c8..55a6c422c 100644
--- a/executor/executor_runner.h
+++ b/executor/executor_runner.h
@@ -765,23 +765,11 @@ static void SigsegvHandler(int sig, siginfo_t* info, void* ucontext)
static void runner(char** argv, int argc)
{
- 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);
-
+ if (argc != 5)
+ fail("usage: syz-executor runner <name> <manager-addr> <manager-port>");
const char* const name = argv[2];
const char* const manager_addr = argv[3];
- 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];
+ const char* const manager_port = argv[4];
struct rlimit rlim;
rlim.rlim_cur = rlim.rlim_max = kFdLimit;
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index 7a993287b..af9076fe6 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -905,12 +905,8 @@ func (mgr *Manager) runInstanceInner(index int, instanceName string, injectExec
mgr.bootTime.Save(time.Since(start))
start = time.Now()
- addr := fwdAddr
- if strings.Contains(fwdAddr, ":") {
- addrPort := strings.Split(fwdAddr, ":")
- addr = fmt.Sprintf("%v %v", addrPort[0], addrPort[1])
- }
- cmd := fmt.Sprintf("%v runner %v %v", executorBin, instanceName, addr)
+ addrPort := strings.Split(fwdAddr, ":")
+ cmd := fmt.Sprintf("%v runner %v %v %v", executorBin, instanceName, addrPort[0], addrPort[1])
_, rep, err := inst.Run(mgr.cfg.Timeouts.VMRunningTime, mgr.reporter, cmd,
vm.ExitTimeout, vm.StopChan(mgr.vmStop), vm.InjectExecuting(injectExec),
vm.EarlyFinishCb(func() {