Repository: securego/gosec (language: go)

Issue:
Error when outputting SARIF
### Summary 

When using the SARIF formatter, I'm getting the following error:
```
[gosec] 2021/01/04 15:37:30 strconv.ParseUint: parsing "79-81": invalid syntax
```

I haven't managed to figure out which part of my repo is generating the error, but it appears to be because this code expects that findings never span more than one line: https://github.com/securego/gosec/blob/master/output/sarif_format.go#L117-L121

### Steps to reproduce the behavior

```
gosec -out go.json -fmt sarif ./...
```

### gosec version

`a5911ad7bb12482fc6b6470671bb924ce0e38b43` (dev)

### Go version (output of 'go version')

`go version go1.15.4 darwin/amd64`

### Operating system / Environment

macOS

### Expected behavior

A SARIF file is generated

### Actual behavior

No SARIF file is generated and `gosec` exits


Discussion / hints:
This is the offending `Issue`:

```go
&{MEDIUM HIGH {78 https://cwe.mitre.org/data/definitions/78.html} G204 Subprocess launched with variable /replaced/with/dummy/path/ 78:     flags = append(flags, defaultFlags...)
79:     cmd := exec.Command(
80:             execPath,
81:             flags...)
82:     ...
 79-81 9}
```

Fix patch:
diff --git a/output/sarif_format.go b/output/sarif_format.go
index 4a29ea8bb2..7070233fcc 100644
--- a/output/sarif_format.go
+++ b/output/sarif_format.go
@@ -35,6 +35,7 @@ type sarifArtifactLocation struct {
 
 type sarifRegion struct {
 	StartLine   uint64 `json:"startLine"`
+	EndLine     uint64 `json:"endLine"`
 	StartColumn uint64 `json:"startColumn"`
 	EndColumn   uint64 `json:"endColumn"`
 }
@@ -114,10 +115,19 @@ func buildSarifRule(issue *gosec.Issue) *sarifRule {
 func buildSarifLocation(issue *gosec.Issue, rootPaths []string) (*sarifLocation, error) {
 	var filePath string
 
-	line, err := strconv.ParseUint(issue.Line, 10, 64)
+	lines := strings.Split(issue.Line, "-")
+	startLine, err := strconv.ParseUint(lines[0], 10, 64)
 	if err != nil {
 		return nil, err
 	}
+	endLine := startLine
+	if len(lines) > 1 {
+		endLine, err = strconv.ParseUint(lines[1], 10, 64)
+		if err != nil {
+			return nil, err
+		}
+	}
+
 	col, err := strconv.ParseUint(issue.Col, 10, 64)
 	if err != nil {
 		return nil, err
@@ -135,7 +145,8 @@ func buildSarifLocation(issue *gosec.Issue, rootPaths []string) (*sarifLocation,
 				URI: filePath,
 			},
 			Region: &sarifRegion{
-				StartLine:   line,
+				StartLine:   startLine,
+				EndLine:     endLine,
 				StartColumn: col,
 				EndColumn:   col,
 			},


Test patch: