forked from dvyukov/go-fuzz
/
init.go
42 lines (34 loc) · 757 Bytes
/
init.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package main
import (
"flag"
"sort"
"log"
. "github.com/bradleyjkemp/simple-fuzz/coverage"
)
var (
flagFunc = flag.String("func", "", "which function to fuzz")
fuzzFunc func([]byte) int
)
func init() {
if len(FuzzFunctions) == 0 {
log.Fatal("No functions available to fuzz")
}
flag.Parse()
if *flagFunc == "" {
var funcs []string
for name := range FuzzFunctions {
funcs = append(funcs, name)
}
sort.Slice(funcs, func(i, j int) bool {
return funcs[i] < funcs[j]
})
log.Printf("Functions available to fuzz: %v", funcs)
*flagFunc = funcs[0]
}
var ok bool
fuzzFunc, ok = FuzzFunctions[*flagFunc]
if !ok {
log.Fatalf("Function %s not available to fuzz", *flagFunc)
}
log.Printf("Fuzzing function %s", *flagFunc)
}