aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-execprog/execprog.go
diff options
context:
space:
mode:
Diffstat (limited to 'tools/syz-execprog/execprog.go')
-rw-r--r--tools/syz-execprog/execprog.go33
1 files changed, 1 insertions, 32 deletions
diff --git a/tools/syz-execprog/execprog.go b/tools/syz-execprog/execprog.go
index cb51244b3..43146a170 100644
--- a/tools/syz-execprog/execprog.go
+++ b/tools/syz-execprog/execprog.go
@@ -13,12 +13,10 @@ import (
"math/rand"
"os"
"runtime"
- "strconv"
"strings"
"sync"
"time"
- "github.com/google/syzkaller/pkg/cover"
"github.com/google/syzkaller/pkg/cover/backend"
"github.com/google/syzkaller/pkg/csource"
"github.com/google/syzkaller/pkg/db"
@@ -125,7 +123,6 @@ func main() {
choiceTable = target.BuildChoiceTable(progs, syscalls)
}
sysTarget := targets.Get(*flagOS, *flagArch)
- upperBase := getKernelUpperBase(sysTarget)
ctx := &Context{
target: target,
progs: progs,
@@ -137,7 +134,6 @@ func main() {
stress: *flagStress,
repeat: *flagRepeat,
sysTarget: sysTarget,
- upperBase: upperBase,
}
var wg sync.WaitGroup
wg.Add(*flagProcs)
@@ -167,7 +163,6 @@ type Context struct {
pos int
lastPrint time.Time
sysTarget *targets.Target
- upperBase uint32
}
func (ctx *Context) run(pid int) {
@@ -296,39 +291,13 @@ func (ctx *Context) printHints(p *prog.Prog, info *flatrpc.ProgInfo) {
log.Logf(0, "ncomps=%v ncandidates=%v", ncomps, ncandidates)
}
-func getKernelUpperBase(target *targets.Target) uint32 {
- defaultRet := uint32(0xffffffff)
- if target.OS == targets.Linux {
- // Read the first 8 bytes from /proc/kallsyms.
- f, err := os.Open("/proc/kallsyms")
- if err != nil {
- log.Logf(1, "could not get kernel fixup address: %v", err)
- return defaultRet
- }
- defer f.Close()
- data := make([]byte, 8)
- _, err = f.ReadAt(data, 0)
- if err != nil {
- log.Logf(1, "could not get kernel fixup address: %v", err)
- return defaultRet
- }
- value, err := strconv.ParseUint(string(data), 16, 32)
- if err != nil {
- log.Logf(1, "could not get kernel fixup address: %v", err)
- return defaultRet
- }
- return uint32(value)
- }
- return defaultRet
-}
-
func (ctx *Context) dumpCallCoverage(coverFile string, info *flatrpc.CallInfo) {
if info == nil || len(info.Cover) == 0 {
return
}
buf := new(bytes.Buffer)
for _, pc := range info.Cover {
- prev := backend.PreviousInstructionPC(ctx.sysTarget, cover.RestorePC(pc, ctx.upperBase))
+ prev := backend.PreviousInstructionPC(ctx.sysTarget, pc)
fmt.Fprintf(buf, "0x%x\n", prev)
}
err := osutil.WriteFile(coverFile, buf.Bytes())