aboutsummaryrefslogtreecommitdiffstats
path: root/prog/prio.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-03-06 09:01:48 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-03-06 09:01:48 +0100
commit7fb694ef82d4dace30cf68efba5a6af705c94fa4 (patch)
treea92ada6d7de6c4426a1ce6dfa2d4ffcac56de890 /prog/prio.go
parent850c989d4fd3ac1fbd6d0e91f0bbf09d49e567ec (diff)
prog: sort enabled syscalls for determinism
Makes tests deterministic and syz-mutate with -seed flag. Pointed out by Jordan Frank (@jwf).
Diffstat (limited to 'prog/prio.go')
-rw-r--r--prog/prio.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/prog/prio.go b/prog/prio.go
index 0e81528e5..b67bbaea0 100644
--- a/prog/prio.go
+++ b/prog/prio.go
@@ -221,6 +221,9 @@ func (target *Target) BuildChoiceTable(prios [][]float32, enabled map[*Syscall]b
if len(enabledCalls) == 0 {
panic(fmt.Sprintf("empty enabledCalls, len(target.Syscalls)=%v", len(target.Syscalls)))
}
+ sort.Slice(enabledCalls, func(i, j int) bool {
+ return enabledCalls[i].ID < enabledCalls[j].ID
+ })
run := make([][]int, len(target.Syscalls))
for i := range run {
if !enabled[target.Syscalls[i]] {