From 8ecf829647b43dd2558ab797af02f3a45b8aec87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles-Edouard=20Br=C3=A9t=C3=A9ch=C3=A9?= Date: Tue, 30 May 2023 16:15:47 +0200 Subject: [PATCH] fix: panic in background reports (#7332) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Charles-Edouard Brétéché --- pkg/controllers/report/background/controller.go | 6 +++--- pkg/controllers/report/utils/scanner.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/controllers/report/background/controller.go b/pkg/controllers/report/background/controller.go index 24051e6ccc..eff9052d17 100644 --- a/pkg/controllers/report/background/controller.go +++ b/pkg/controllers/report/background/controller.go @@ -309,9 +309,9 @@ func (c *controller) reconcileReport( for _, result := range scanner.ScanResource(ctx, *target, nsLabels, policy) { if result.Error != nil { return result.Error - } else { - ruleResults = append(ruleResults, reportutils.EngineResponseToReportResults(result.EngineResponse)...) - utils.GenerateEvents(logger, c.eventGen, c.config, result.EngineResponse) + } else if result.EngineResponse != nil { + ruleResults = append(ruleResults, reportutils.EngineResponseToReportResults(*result.EngineResponse)...) + utils.GenerateEvents(logger, c.eventGen, c.config, *result.EngineResponse) } } } diff --git a/pkg/controllers/report/utils/scanner.go b/pkg/controllers/report/utils/scanner.go index 52dc55b510..94224aa29e 100644 --- a/pkg/controllers/report/utils/scanner.go +++ b/pkg/controllers/report/utils/scanner.go @@ -21,7 +21,7 @@ type scanner struct { } type ScanResult struct { - EngineResponse engineapi.EngineResponse + EngineResponse *engineapi.EngineResponse Error error } @@ -61,11 +61,11 @@ func (s *scanner) ScanResource(ctx context.Context, resource unstructured.Unstru } if response == nil { response = ivResponse - } else { + } else if ivResponse != nil { response.PolicyResponse.Rules = append(response.PolicyResponse.Rules, ivResponse.PolicyResponse.Rules...) } } - results[policy] = ScanResult{*response, multierr.Combine(errors...)} + results[policy] = ScanResult{response, multierr.Combine(errors...)} } return results }