Skip to content

Commit

Permalink
Add leniancy to the version matching for debian to account for versio…
Browse files Browse the repository at this point in the history
…ns without the "+" when package maintainers aren't using them.
  • Loading branch information
jsulinski committed Feb 10, 2017
1 parent 1730caf commit 9dbd270
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion scan/debian.go
Original file line number Diff line number Diff line change
Expand Up @@ -592,19 +592,28 @@ func (o *debian) parseChangelog(changelog string,
cveRe := regexp.MustCompile(`(CVE-\d{4}-\d{4,})`)
stopRe := regexp.MustCompile(fmt.Sprintf(`\(%s\)`, regexp.QuoteMeta(versionOrLater)))
stopLineFound := false
leniantStopeLineFound := false
versionOrLaterLeniant := versionOrLater
if i := strings.IndexRune(versionOrLaterLeniant, '+'); i >= 0 {
versionOrLaterLeniant = versionOrLaterLeniant[:i]
}
leniantRe := regexp.MustCompile(fmt.Sprintf(`\(%s\)`, regexp.QuoteMeta(versionOrLaterLeniant)))
lines := strings.Split(changelog, "\n")
for _, line := range lines {
if matche := stopRe.MatchString(line); matche {
// o.log.Debugf("Found the stop line: %s", line)
stopLineFound = true
break
} else if matchel := leniantRe.MatchString(line); matchel {
leniantStopLineFound = true
break
} else if matches := cveRe.FindAllString(line, -1); 0 < len(matches) {
for _, m := range matches {
cveIDs = util.AppendIfMissing(cveIDs, m)
}
}
}
if !stopLineFound {
if !stopLineFound && !leniantStopLineFound {
return []string{}, fmt.Errorf(
"Failed to scan CVE IDs. The version is not in changelog. name: %s, version: %s",
packName,
Expand Down

0 comments on commit 9dbd270

Please sign in to comment.