diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-11-27 17:23:09 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-12-11 15:22:17 +0000 |
| commit | 299ee674e6c124a35f1cf258df4f0f3c6e1db1f3 (patch) | |
| tree | 416b515e959a1d0a64a9516b1524a062ae63ba7d /syz-manager | |
| parent | ff949d2512c5ac33d0407d26d80f1df77b2de0e7 (diff) | |
executor: query globs in the test program context
We query globs for 2 reasons:
1. Expand glob types in syscall descriptions.
2. Dynamic file probing for automatic descriptions generation.
In both of these contexts are are interested in files
that will be present during test program execution
(rather than normal unsandboxed execution).
For example, some files may not be accessible to test programs
after pivot root. On the other hand, we create and link
some additional files for the test program that don't
normally exist.
Add a new request type for querying of globs that are
executed in the test program context.
Diffstat (limited to 'syz-manager')
| -rw-r--r-- | syz-manager/manager.go | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go index 98c7b4dbd..40c1da6e5 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -302,9 +302,6 @@ func RunManager(mode *Mode, cfg *mgrconfig.Config) { Stats: mgr.servStats, Debug: *flagDebug, } - if mode == ModeIfaceProbe { - rpcCfg.CheckGlobs = ifaceprobe.Globs() - } mgr.serv, err = rpcserver.New(rpcCfg) if err != nil { log.Fatalf("failed to create rpc server: %v", err) @@ -1085,8 +1082,7 @@ func (mgr *Manager) BugFrames() (leaks, races []string) { return } -func (mgr *Manager) MachineChecked(info *flatrpc.InfoRequest, features flatrpc.Feature, - enabledSyscalls map[*prog.Syscall]bool) queue.Source { +func (mgr *Manager) MachineChecked(features flatrpc.Feature, enabledSyscalls map[*prog.Syscall]bool) queue.Source { if len(enabledSyscalls) == 0 { log.Fatalf("all system calls are disabled") } @@ -1197,7 +1193,7 @@ func (mgr *Manager) MachineChecked(info *flatrpc.InfoRequest, features flatrpc.F } else if mgr.mode == ModeIfaceProbe { exec := queue.Plain() go func() { - res, err := ifaceprobe.Run(vm.ShutdownCtx(), mgr.cfg, exec, info) + res, err := ifaceprobe.Run(vm.ShutdownCtx(), mgr.cfg, features, exec) if err != nil { log.Fatalf("interface probing failed: %v", err) } |
