Merge pull request #2608 from reasonerjt/clair-integration

fix nil pointer in vulnerability/details api
This commit is contained in:
Daniel Jiang 2017-06-23 11:00:53 +08:00 committed by GitHub
commit 6e0f274c07

View File

@ -762,11 +762,13 @@ func (ra *RepositoryAPI) VulnerabilityDetails() {
ra.HandleForbidden(ra.SecurityCtx.GetUsername()) ra.HandleForbidden(ra.SecurityCtx.GetUsername())
return return
} }
res := []*models.VulnerabilityItem{}
overview, err := dao.GetImgScanOverview(digest) overview, err := dao.GetImgScanOverview(digest)
if err != nil { if err != nil {
ra.HandleInternalServerError(fmt.Sprintf("failed to get the scan overview, error: %v", err)) ra.HandleInternalServerError(fmt.Sprintf("failed to get the scan overview, error: %v", err))
return return
} }
if overview != nil {
clairClient := clair.NewClient(config.ClairEndpoint(), nil) clairClient := clair.NewClient(config.ClairEndpoint(), nil)
log.Debugf("The key for getting details: %s", overview.DetailsKey) log.Debugf("The key for getting details: %s", overview.DetailsKey)
details, err := clairClient.GetResult(overview.DetailsKey) details, err := clairClient.GetResult(overview.DetailsKey)
@ -774,7 +776,9 @@ func (ra *RepositoryAPI) VulnerabilityDetails() {
ra.HandleInternalServerError(fmt.Sprintf("Failed to get scan details from Clair, error: %v", err)) ra.HandleInternalServerError(fmt.Sprintf("Failed to get scan details from Clair, error: %v", err))
return return
} }
ra.Data["json"] = transformVulnerabilities(details) res = transformVulnerabilities(details)
}
ra.Data["json"] = res
ra.ServeJSON() ra.ServeJSON()
} }