From 99ed12e158687b7aba55eac142d6bad3f147d029 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Thu, 18 Sep 2025 17:36:53 +0200 Subject: syz-cluster: rewrite fuzz config generation Instead of a predefined set of manually written syz-manager configs, construct it dynamically from different bits. During triage, select not just one, but all matching fuzzer configurations and then merge them together. --- tools/syz-db/syz-db.go | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) (limited to 'tools') diff --git a/tools/syz-db/syz-db.go b/tools/syz-db/syz-db.go index 3cec95097..65d1c5ba8 100644 --- a/tools/syz-db/syz-db.go +++ b/tools/syz-db/syz-db.go @@ -169,30 +169,15 @@ func unpack(file, dir string) { } func merge(file string, adds []string, target *prog.Target) { - dstDB, err := db.Open(file, false) + failures, err := db.Merge(file, adds, target) if err != nil { - tool.Failf("failed to open database: %v", err) + tool.Failf("%s", err) } - for _, add := range adds { - if addDB, err := db.Open(add, false); err == nil { - for key, rec := range addDB.Records { - dstDB.Save(key, rec.Val, rec.Seq) - } - continue - } else if target == nil { - tool.Failf("failed to open db %v: %v", add, err) - } - data, err := os.ReadFile(add) - if err != nil { - tool.Fail(err) - } - if _, err := target.Deserialize(data, prog.NonStrict); err != nil { - tool.Failf("failed to deserialize %v: %v", add, err) + if len(failures) > 0 { + for _, fail := range failures { + fmt.Printf("failed to deserialize a record from %s: %s\n", fail.File, fail.Err) } - dstDB.Save(hash.String(data), data, 0) - } - if err := dstDB.Flush(); err != nil { - tool.Failf("failed to save db: %v", err) + tool.Failf("there have been deserialization errors") } } -- cgit mrf-deployment