aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--prog/prog.go8
-rw-r--r--prog/size.go4
-rw-r--r--prog/validation.go4
-rw-r--r--tools/syz-trace2syz/proggen/proggen.go2
-rw-r--r--tools/syz-trace2syz/proggen/proggen_test.go2
-rw-r--r--tools/syz-trace2syz/trace2syz.go2
6 files changed, 10 insertions, 12 deletions
diff --git a/prog/prog.go b/prog/prog.go
index 575680882..69c76c019 100644
--- a/prog/prog.go
+++ b/prog/prog.go
@@ -20,6 +20,14 @@ type Call struct {
Comment string
}
+func (p *Prog) Finalize() error {
+ for _, c := range p.Calls {
+ p.Target.assignSizesCall(c)
+ p.Target.SanitizeCall(c)
+ }
+ return p.validate()
+}
+
type Arg interface {
Type() Type
Size() uint64
diff --git a/prog/size.go b/prog/size.go
index a8f51bdef..c16e7f647 100644
--- a/prog/size.go
+++ b/prog/size.go
@@ -112,10 +112,6 @@ func (target *Target) assignSizesArray(args []Arg) {
}
}
-func (target *Target) AssignSizesCall(c *Call) {
- target.assignSizesCall(c)
-}
-
func (target *Target) assignSizesCall(c *Call) {
target.assignSizesArray(c.Args)
}
diff --git a/prog/validation.go b/prog/validation.go
index e169ffa26..e7a015c64 100644
--- a/prog/validation.go
+++ b/prog/validation.go
@@ -23,10 +23,6 @@ type validCtx struct {
uses map[Arg]Arg
}
-func (p *Prog) Validate() error {
- return p.validate()
-}
-
func (p *Prog) validate() error {
ctx := &validCtx{
target: p.Target,
diff --git a/tools/syz-trace2syz/proggen/proggen.go b/tools/syz-trace2syz/proggen/proggen.go
index 4ba81d5b5..54d614670 100644
--- a/tools/syz-trace2syz/proggen/proggen.go
+++ b/tools/syz-trace2syz/proggen/proggen.go
@@ -33,7 +33,6 @@ func GenSyzProg(trace *parser.Trace, target *prog.Target, selector *CallSelector
if call == nil {
continue
}
- ctx.Target.AssignSizesCall(call)
ctx.Prog.Calls = append(ctx.Prog.Calls, call)
}
return ctx
@@ -60,7 +59,6 @@ func genCall(ctx *Context) *prog.Call {
syzCall.Args = append(syzCall.Args, res)
}
genResult(syzCall.Meta.Ret, straceCall.Ret, ctx)
- ctx.Target.SanitizeCall(syzCall)
return syzCall
}
diff --git a/tools/syz-trace2syz/proggen/proggen_test.go b/tools/syz-trace2syz/proggen/proggen_test.go
index 47a879333..c02ea57f7 100644
--- a/tools/syz-trace2syz/proggen/proggen_test.go
+++ b/tools/syz-trace2syz/proggen/proggen_test.go
@@ -40,7 +40,7 @@ func parseSingleTrace(t *testing.T, data string) *Context {
traceTree = parser.ParseLoop(data)
ctx = GenSyzProg(traceTree.TraceMap[traceTree.RootPid], target, selector)
ctx.FillOutMemory()
- if err := ctx.Prog.Validate(); err != nil {
+ if err := ctx.Prog.Finalize(); err != nil {
t.Fatalf("failed to parse trace: %s", err.Error())
}
return ctx
diff --git a/tools/syz-trace2syz/trace2syz.go b/tools/syz-trace2syz/trace2syz.go
index 745493186..3400004c8 100644
--- a/tools/syz-trace2syz/trace2syz.go
+++ b/tools/syz-trace2syz/trace2syz.go
@@ -85,7 +85,7 @@ func parseTraces(target *prog.Target) []*prog.Prog {
log.Logf(1, "failed to fill out memory: %v, skipping this prog", err)
continue
}
- if err := ctx.Prog.Validate(); err != nil {
+ if err := ctx.Prog.Finalize(); err != nil {
log.Fatalf("error validating program: %s", err)
}
if progIsTooLarge(ctx.Prog) {