aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-10-14 12:24:32 +0200
committerAleksandr Nogikh <nogikh@google.com>2024-10-14 19:43:15 +0000
commit4ecf61d06a754a3980c8a38513aded6f0db9ec2b (patch)
tree3fc8c91422b1cb9848e7cc67a736eefa50d8adca
parent084d817847fa603dabdd081770a757e9c41f1ae7 (diff)
pkg/manager: list broken seeds
It's not very useful to just have the number of the broken seeds. Let's also show their names and the reasons why they are broken.
-rw-r--r--pkg/manager/seeds.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/pkg/manager/seeds.go b/pkg/manager/seeds.go
index 5455684c2..80248f04c 100644
--- a/pkg/manager/seeds.go
+++ b/pkg/manager/seeds.go
@@ -42,8 +42,10 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds {
type Input struct {
IsSeed bool
Key string
+ Path string
Data []byte
Prog *prog.Prog
+ Err error
}
procs := runtime.GOMAXPROCS(0)
inputs := make(chan *Input, procs)
@@ -54,7 +56,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds {
go func() {
defer wg.Done()
for inp := range inputs {
- inp.Prog, _ = LoadProg(cfg.Target, inp.Data)
+ inp.Prog, inp.Err = LoadProg(cfg.Target, inp.Data)
outputs <- inp
}
}()
@@ -70,7 +72,8 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds {
Data: rec.Val,
}
}
- seedDir := filepath.Join(cfg.Syzkaller, "sys", cfg.TargetOS, "test")
+ seedPath := filepath.Join("sys", cfg.TargetOS, "test")
+ seedDir := filepath.Join(cfg.Syzkaller, seedPath)
if osutil.IsExist(seedDir) {
seeds, err := os.ReadDir(seedDir)
if err != nil {
@@ -83,6 +86,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds {
}
inputs <- &Input{
IsSeed: true,
+ Path: filepath.Join(seedPath, seed.Name()),
Data: data,
}
}
@@ -96,6 +100,7 @@ func LoadSeeds(cfg *mgrconfig.Config, immutable bool) Seeds {
if inp.Prog == nil {
if inp.IsSeed {
brokenSeeds++
+ log.Errorf("seed %s is broken: %s", inp.Path, inp.Err)
} else {
brokenCorpus = append(brokenCorpus, inp.Key)
}