diff --git a/pkg/report/model/sarif.go b/pkg/report/model/sarif.go index 0688478e30d..b0cc8a9b61f 100644 --- a/pkg/report/model/sarif.go +++ b/pkg/report/model/sarif.go @@ -286,6 +286,10 @@ func (sr *sarifReport) BuildSarifIssue(issue *model.QueryResult) { kind = "informational" } for idx := range issue.Files { + line := issue.Files[idx].Line + if line < 1 { + line = 1 + } result := sarifResult{ ResultRuleID: issue.QueryID, ResultRuleIndex: ruleIndex, @@ -295,7 +299,7 @@ func (sr *sarifReport) BuildSarifIssue(issue *model.QueryResult) { { PhysicalLocation: sarifPhysicalLocation{ ArtifactLocation: sarifArtifactLocation{ArtifactURI: issue.Files[idx].FileName}, - Region: sarifRegion{StartLine: issue.Files[idx].Line}, + Region: sarifRegion{StartLine: line}, }, }, }, diff --git a/pkg/report/model/sarif_test.go b/pkg/report/model/sarif_test.go index 652ba966d09..094bf6cbddb 100644 --- a/pkg/report/model/sarif_test.go +++ b/pkg/report/model/sarif_test.go @@ -43,7 +43,7 @@ var sarifTests = []sarifTest{ }, }, { - name: "Should create one occurrence", + name: "Should create one occurrence with valid startLine", vq: []model.QueryResult{ { QueryName: "test", @@ -52,7 +52,7 @@ var sarifTests = []sarifTest{ QueryURI: "https://www.test.com", Severity: model.SeverityHigh, Files: []model.VulnerableFile{ - {KeyActualValue: "test", FileName: "test.json", Line: 1}, + {KeyActualValue: "test", FileName: "test.json", Line: -1}, }, }, },