From 9d2ab5dfe7727dfea4b9b279f4edf731acb386ef Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 25 Jun 2021 17:57:13 +0200 Subject: syz-manager, syz-fuzzer: filter stale glob values in the corpus Corpus may accumulate glob values that are already filtered out by descriptions (e.g. some harmful files), for an example see: https://groups.google.com/g/syzkaller-bugs/c/W_R0O4XWpfY/m/sdwwg2_hAwAJ Pass glob files to the manager and filter out values that are not present in the glob already. Also use the same caching scheme we use for features and enabled syscalls so that fuzzers don't need to scan globs every time. --- prog/encoding.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'prog/encoding.go') diff --git a/prog/encoding.go b/prog/encoding.go index e66535e2a..b389fc10d 100644 --- a/prog/encoding.go +++ b/prog/encoding.go @@ -549,7 +549,8 @@ func (p *parser) parseArgString(t Type, dir Dir) (Arg, error) { data = append(data, make([]byte, diff)...) } data = data[:size] - if typ.Kind == BufferString && len(typ.Values) != 0 && + if (typ.Kind == BufferString || typ.Kind == BufferGlob) && + len(typ.Values) != 0 && // AUTOGENERATED will be padded by 0's. !strings.HasPrefix(typ.Values[0], "AUTOGENERATED") { matched := false -- cgit mrf-deployment