aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@gmail.com>2016-11-22 16:12:43 +0100
committerGitHub <noreply@github.com>2016-11-22 16:12:43 +0100
commit599adaf8f83defba1ebddf30e242b66175cf048a (patch)
treedfd2a24dc5265e18683c285e90d0ae9b467ca696
parentab3f4a073671a0f36b23988e0ece7adbe476a053 (diff)
parent5f1dc346935b8b0d7d4fc42457e7070d6d5c0e2a (diff)
Merge pull request #89 from xairy/small-fixes
Small fixes
-rw-r--r--prog/mutation.go4
-rw-r--r--prog/validation.go6
-rw-r--r--syz-manager/html.go1
-rw-r--r--syz-manager/manager.go2
4 files changed, 10 insertions, 3 deletions
diff --git a/prog/mutation.go b/prog/mutation.go
index 8d5fa36a4..80b7cdf54 100644
--- a/prog/mutation.go
+++ b/prog/mutation.go
@@ -388,14 +388,14 @@ func mutateData(r *randGen, data []byte, minLen, maxLen int) []byte {
r.choose(
100, func() {
// Append byte.
- if len(data) == maxLen {
+ if len(data) >= maxLen {
return
}
data = append(data, byte(r.rand(256)))
},
100, func() {
// Remove byte.
- if len(data) == minLen {
+ if len(data) <= minLen {
return
}
if len(data) == 0 {
diff --git a/prog/validation.go b/prog/validation.go
index 6d84073ba..c30e2eecd 100644
--- a/prog/validation.go
+++ b/prog/validation.go
@@ -136,6 +136,12 @@ func (c *Call) validate(ctx *validCtx) error {
}
case ArgPageSize:
case ArgData:
+ switch typ1 := typ.(type) {
+ case *sys.ArrayType:
+ if typ2, ok := typ1.Type.(*sys.IntType); !ok || typ2.Size() != 1 {
+ return fmt.Errorf("syscall %v: data arg '%v' should be an array", c.Meta.Name, typ.Name())
+ }
+ }
case ArgGroup:
switch typ1 := typ.(type) {
case *sys.StructType:
diff --git a/syz-manager/html.go b/syz-manager/html.go
index f29b95e4c..0884e6266 100644
--- a/syz-manager/html.go
+++ b/syz-manager/html.go
@@ -481,6 +481,7 @@ var summaryTemplate = template.Must(template.New("").Parse(addStyle(`
<br>
<b>Per-call coverage:</b>
+<br>
{{range $c := $.Calls}}
{{$c.Name}}
<a href='/corpus?call={{$c.Name}}'>inputs:{{$c.Inputs}}</a>
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index 8f5839e29..b9d94301a 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -154,7 +154,7 @@ func RunManager(cfg *config.Config, syscalls map[int]bool, suppressions []*regex
}
mgr.candidates = append(mgr.candidates, data)
}
- Logf(0, "loaded %v programs", len(mgr.persistentCorpus.m))
+ Logf(0, "loaded %v programs (%v total)", len(mgr.candidates), len(mgr.persistentCorpus.m))
// Create HTTP server.
mgr.initHttp()