From 115165ffb1aa821fec75f7229ab4e81e20584745 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 25 Jun 2024 11:08:48 +0200 Subject: 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. --- executor/executor_runner.h | 18 +++--------------- syz-manager/manager.go | 8 ++------ 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 " - " OR syz-executor runner stdin"; - if (argc < 4 || argc > 5) - fail(usage_msg); - + if (argc != 5) + fail("usage: syz-executor runner "); 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() { -- cgit mrf-deployment