From 04cb53cd0090dc60cf240ac4dd46db297ee8b18f Mon Sep 17 00:00:00 2001 From: Hank Donnay Date: Mon, 26 Oct 2020 09:49:09 -0500 Subject: [PATCH] rpm: fix error handling in WalkFunc Signed-off-by: Hank Donnay --- rpm/packagescanner.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rpm/packagescanner.go b/rpm/packagescanner.go index fcf5c8d54..5283a938d 100644 --- a/rpm/packagescanner.go +++ b/rpm/packagescanner.go @@ -125,7 +125,15 @@ func (ps *Scanner) Scan(ctx context.Context, layer *claircore.Layer) ([]*clairco // Need a big closure in this defer because of permissions being preserved. defer func() { err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { - // If a directory isn't o+w, fix it. + // If err != nil, then info will be nil. + if err != nil { + log.Warn(). + Str("path", path). + Err(err). + Msg("error walking files") + return nil + } + // If a directory isn't u+w, fix it. if m := info.Mode(); info.IsDir() && m&0200 == 0 { return os.Chmod(path, m|0200) }