aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/rpcserver
diff options
context:
space:
mode:
authorJoey Jiao <quic_jiangenj@quicinc.com>2024-07-01 10:45:10 +0800
committerDmitry Vyukov <dvyukov@google.com>2024-07-03 08:00:41 +0000
commitd819d4df2ae41917fefc7f25a0bcb8a7d3573c25 (patch)
tree4df3c1fc2dde1ff07af33272ca2d37d8b949290e /pkg/rpcserver
parent9dde10367399d3f211ebc68b4b3c8fa8ba718917 (diff)
all: calc kaslr offset and remove kaslr_offset from module addr
Diffstat (limited to 'pkg/rpcserver')
-rw-r--r--pkg/rpcserver/rpcserver.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/pkg/rpcserver/rpcserver.go b/pkg/rpcserver/rpcserver.go
index 0cb1e05a9..b6b660e6a 100644
--- a/pkg/rpcserver/rpcserver.go
+++ b/pkg/rpcserver/rpcserver.go
@@ -17,6 +17,7 @@ import (
"time"
"github.com/google/syzkaller/pkg/cover"
+ "github.com/google/syzkaller/pkg/cover/backend"
"github.com/google/syzkaller/pkg/flatrpc"
"github.com/google/syzkaller/pkg/fuzzer/queue"
"github.com/google/syzkaller/pkg/log"
@@ -41,7 +42,8 @@ type Config struct {
PrintMachineCheck bool
Procs int
Slowdown int
- PCBase uint64
+ pcBase uint64
+ localModules []*cover.KernelModule
}
type Manager interface {
@@ -86,6 +88,10 @@ func New(cfg *mgrconfig.Config, mgr Manager, debug bool) (*Server, error) {
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 {
return nil, err
@@ -114,7 +120,8 @@ func New(cfg *mgrconfig.Config, mgr Manager, debug bool) (*Server, error) {
PrintMachineCheck: true,
Procs: cfg.Procs,
Slowdown: cfg.Timeouts.Slowdown,
- PCBase: pcBase,
+ pcBase: pcBase,
+ localModules: modules,
}, mgr)
}
@@ -302,6 +309,7 @@ func (serv *Server) handshake(conn *flatrpc.Conn) (string, []byte, *cover.Canoni
infoReq.Error = err.Error()
}
}
+ modules = backend.FixModules(serv.cfg.localModules, modules, serv.cfg.pcBase)
if infoReq.Error != "" {
log.Logf(0, "machine check failed: %v", infoReq.Error)
serv.checkFailures++