aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/vminfo
diff options
context:
space:
mode:
authorJoey Jiao <quic_jiangenj@quicinc.com>2024-07-08 11:08:29 +0800
committerAleksandr Nogikh <nogikh@google.com>2024-07-10 09:29:04 +0000
commite7213be306a4b6eb76d4c0e34a1a99ebab5639ac (patch)
tree5b058ce192f157ecb1bab6a14a7ae79a3053ab60 /pkg/vminfo
parent9e136b95503a540d35e7bace3e89b77f13a672b1 (diff)
all: move KernelModule into vminfo package
Diffstat (limited to 'pkg/vminfo')
-rw-r--r--pkg/vminfo/linux.go10
-rw-r--r--pkg/vminfo/netbsd.go3
-rw-r--r--pkg/vminfo/openbsd.go3
-rw-r--r--pkg/vminfo/vminfo.go14
-rw-r--r--pkg/vminfo/vminfo_test.go1
5 files changed, 17 insertions, 14 deletions
diff --git a/pkg/vminfo/linux.go b/pkg/vminfo/linux.go
index d6b83ef2f..23b317010 100644
--- a/pkg/vminfo/linux.go
+++ b/pkg/vminfo/linux.go
@@ -13,8 +13,6 @@ import (
"sort"
"strconv"
"strings"
-
- "github.com/google/syzkaller/pkg/cover"
)
type linux int
@@ -45,13 +43,13 @@ func (linux) machineInfos() []machineInfoFunc {
}
}
-func (linux) parseModules(files filesystem) ([]*cover.KernelModule, error) {
+func (linux) parseModules(files filesystem) ([]*KernelModule, error) {
_, err := files.ReadFile("/proc/sentry-meminfo")
if err == nil {
// This is gVisor.
return nil, nil
}
- var modules []*cover.KernelModule
+ var modules []*KernelModule
re := regexp.MustCompile(`(\w+) ([0-9]+) .*(0[x|X][a-fA-F0-9]+)[^\n]*`)
modulesText, _ := files.ReadFile("/proc/modules")
for _, match := range re.FindAllSubmatch(modulesText, -1) {
@@ -72,7 +70,7 @@ func (linux) parseModules(files filesystem) ([]*cover.KernelModule, error) {
return nil, fmt.Errorf("module %v size parsing error: %w", name, err)
}
offset := modAddr - textAddr
- modules = append(modules, &cover.KernelModule{
+ modules = append(modules, &KernelModule{
Name: name,
Addr: textAddr,
// The size is wrong as there is overlap in /proc/modules
@@ -86,7 +84,7 @@ func (linux) parseModules(files filesystem) ([]*cover.KernelModule, error) {
if err != nil {
return nil, err
}
- modules = append(modules, &cover.KernelModule{
+ modules = append(modules, &KernelModule{
Name: "",
Addr: _stext,
Size: _etext - _stext,
diff --git a/pkg/vminfo/netbsd.go b/pkg/vminfo/netbsd.go
index d447e33c5..e79e5a05f 100644
--- a/pkg/vminfo/netbsd.go
+++ b/pkg/vminfo/netbsd.go
@@ -4,7 +4,6 @@
package vminfo
import (
- "github.com/google/syzkaller/pkg/cover"
"github.com/google/syzkaller/prog"
)
@@ -18,7 +17,7 @@ func (netbsd) checkFiles() []string {
return nil
}
-func (netbsd) parseModules(files filesystem) ([]*cover.KernelModule, error) {
+func (netbsd) parseModules(files filesystem) ([]*KernelModule, error) {
return nil, nil
}
diff --git a/pkg/vminfo/openbsd.go b/pkg/vminfo/openbsd.go
index 7ecb96f81..e7c0d78e2 100644
--- a/pkg/vminfo/openbsd.go
+++ b/pkg/vminfo/openbsd.go
@@ -4,7 +4,6 @@
package vminfo
import (
- "github.com/google/syzkaller/pkg/cover"
"github.com/google/syzkaller/prog"
)
@@ -18,7 +17,7 @@ func (openbsd) checkFiles() []string {
return nil
}
-func (openbsd) parseModules(files filesystem) ([]*cover.KernelModule, error) {
+func (openbsd) parseModules(files filesystem) ([]*KernelModule, error) {
return nil, nil
}
diff --git a/pkg/vminfo/vminfo.go b/pkg/vminfo/vminfo.go
index eb012d1de..554bb3022 100644
--- a/pkg/vminfo/vminfo.go
+++ b/pkg/vminfo/vminfo.go
@@ -22,13 +22,19 @@ import (
"os"
"strings"
- "github.com/google/syzkaller/pkg/cover"
"github.com/google/syzkaller/pkg/flatrpc"
"github.com/google/syzkaller/pkg/fuzzer/queue"
"github.com/google/syzkaller/prog"
"github.com/google/syzkaller/sys/targets"
)
+type KernelModule struct {
+ Name string
+ Addr uint64
+ Size uint64
+ Path string
+}
+
type Checker struct {
checker
source queue.Source
@@ -67,7 +73,7 @@ func New(ctx context.Context, cfg *Config) *Checker {
}
}
-func (checker *Checker) MachineInfo(fileInfos []*flatrpc.FileInfo) ([]*cover.KernelModule, []byte, error) {
+func (checker *Checker) MachineInfo(fileInfos []*flatrpc.FileInfo) ([]*KernelModule, []byte, error) {
files := createVirtualFilesystem(fileInfos)
modules, err := checker.parseModules(files)
if err != nil {
@@ -116,7 +122,7 @@ type machineInfoFunc func(files filesystem, w io.Writer) (string, error)
type checker interface {
RequiredFiles() []string
checkFiles() []string
- parseModules(files filesystem) ([]*cover.KernelModule, error)
+ parseModules(files filesystem) ([]*KernelModule, error)
machineInfos() []machineInfoFunc
syscallCheck(*checkContext, *prog.Syscall) string
}
@@ -176,7 +182,7 @@ func (stub) checkFiles() []string {
return nil
}
-func (stub) parseModules(files filesystem) ([]*cover.KernelModule, error) {
+func (stub) parseModules(files filesystem) ([]*KernelModule, error) {
return nil, nil
}
diff --git a/pkg/vminfo/vminfo_test.go b/pkg/vminfo/vminfo_test.go
index 049456e19..398cf93e2 100644
--- a/pkg/vminfo/vminfo_test.go
+++ b/pkg/vminfo/vminfo_test.go
@@ -15,6 +15,7 @@ import (
"github.com/google/syzkaller/pkg/flatrpc"
"github.com/google/syzkaller/pkg/fuzzer/queue"
"github.com/google/syzkaller/prog"
+ _ "github.com/google/syzkaller/sys"
"github.com/google/syzkaller/sys/targets"
)