aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-07-04 10:09:11 +0200
committerAleksandr Nogikh <nogikh@google.com>2024-07-04 14:15:28 +0000
commit87735313feed904c37a0650a70ade96294f3b997 (patch)
tree46450158e25eda5d6ab8d4841d56e51bb4e2206c /pkg
parent5da12e0a343fb6aecdbba2831bbac00c61e54710 (diff)
pkg/rpcserver: tolerate the kernel directory absence
For fuzzing, we don't strictly need the kernel directory or the kernel object file. We just need a disk/kernel image.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/rpcserver/rpcserver.go19
1 files changed, 12 insertions, 7 deletions
diff --git a/pkg/rpcserver/rpcserver.go b/pkg/rpcserver/rpcserver.go
index d9efb9d0d..d6a94094b 100644
--- a/pkg/rpcserver/rpcserver.go
+++ b/pkg/rpcserver/rpcserver.go
@@ -84,13 +84,18 @@ type Server struct {
}
func New(cfg *mgrconfig.Config, mgr Manager, debug bool) (*Server, error) {
- pcBase, err := cover.GetPCBase(cfg)
- if err != nil {
- return nil, err
- }
- modules, err := backend.DiscoverModules(cfg.SysTarget, cfg.KernelObj, cfg.ModuleObj)
- if err != nil {
- return nil, err
+ var modules []*cover.KernelModule
+ var pcBase uint64
+ if cfg.KernelObj != "" {
+ var err error
+ pcBase, err = cover.GetPCBase(cfg)
+ if err != nil {
+ return nil, err
+ }
+ modules, err = backend.DiscoverModules(cfg.SysTarget, cfg.KernelObj, cfg.ModuleObj)
+ if err != nil {
+ return nil, err
+ }
}
sandbox, err := flatrpc.SandboxToFlags(cfg.Sandbox)
if err != nil {