From be3c96d30e70cbe08ccce6b6f734b6eac2125563 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 13 Dec 2021 10:56:22 +0100 Subject: tools/syz-kconf: better handle whitespaces for verbatim blocks When we appended verbatim blocks we added '\n' for each of them, (for every config file effectively). Even for empty verbatim blocks. This worked fine because we had only 1 verbatim block and we do TrimSpace for the resulting concatenated verbatim block (so all excessive '\n' were removed). But this does not work for multiple verbatim blocks because excessive '\n' will be in the middle and won't be removed by TrimSpace. Don't add '\n' for empty verbatim blocks. --- tools/syz-kconf/parser.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/syz-kconf/parser.go b/tools/syz-kconf/parser.go index 3419ea859..8b8a074c7 100644 --- a/tools/syz-kconf/parser.go +++ b/tools/syz-kconf/parser.go @@ -9,6 +9,7 @@ import ( "io/ioutil" "path/filepath" "strconv" + "strings" "github.com/google/syzkaller/pkg/kconfig" "github.com/google/syzkaller/pkg/vcs" @@ -190,7 +191,9 @@ func mergeFile(inst *Instance, raw *rawFile, file string, errs *Errors) { Constraints: constraints, }) } - inst.Verbatim = append(append(inst.Verbatim, raw.Verbatim...), '\n') + if raw.Verbatim != "" { + inst.Verbatim = append(append(inst.Verbatim, strings.TrimSpace(raw.Verbatim)...), '\n') + } for _, node := range raw.Config { mergeConfig(inst, file, node, false, errs) } -- cgit mrf-deployment