From 7f8a1b314aee7a8cb1e6aa90ee5f684350a50201 Mon Sep 17 00:00:00 2001 From: Achilleas Koutsou Date: Tue, 16 Nov 2021 12:26:57 +0100 Subject: [PATCH] osbuild: check if result objects are nil in Write() Before dereferencing the method receiver in Write(), check if the object is nil and return early. Fixes #2002 Signed-off-by: Achilleas Koutsou --- internal/osbuild1/result.go | 3 ++- internal/osbuild2/result.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/osbuild1/result.go b/internal/osbuild1/result.go index 15616bcef..c07961167 100644 --- a/internal/osbuild1/result.go +++ b/internal/osbuild1/result.go @@ -81,8 +81,9 @@ func (result *StageResult) UnmarshalJSON(data []byte) error { } func (cr *Result) Write(writer io.Writer) error { - if cr.Build == nil && len(cr.Stages) == 0 && cr.Assembler == nil { + if cr == nil || (cr.Build == nil && len(cr.Stages) == 0 && cr.Assembler == nil) { fmt.Fprintf(writer, "The compose result is empty.\n") + return nil } if cr.Build != nil { diff --git a/internal/osbuild2/result.go b/internal/osbuild2/result.go index dc0f1efa9..f1aaf77a9 100644 --- a/internal/osbuild2/result.go +++ b/internal/osbuild2/result.go @@ -201,8 +201,9 @@ func (res *Result) fromV1(resv1 osbuild1.Result) { } func (res *Result) Write(writer io.Writer) error { - if res.Log == nil { + if res == nil || res.Log == nil { fmt.Fprintf(writer, "The compose result is empty.\n") + return nil } // The pipeline results don't have a stable order