1
0
Fork 0
mirror of https://github.com/gocsaf/csaf.git synced 2025-12-22 11:55:40 +01:00

Merge branch 'main' into link-checker

This commit is contained in:
Bernhard Reiter 2022-05-17 14:45:01 +02:00
commit 29f26e0299
No known key found for this signature in database
GPG key ID: 2B7BA3BF9BC3A554
5 changed files with 305 additions and 6 deletions

View file

@ -464,14 +464,37 @@ func (p *processor) processROLIEFeed(feed string) error {
feed, res.StatusCode, res.Status)
return errContinue
}
rfeed, err := func() (*csaf.ROLIEFeed, error) {
rfeed, rolieDoc, err := func() (*csaf.ROLIEFeed, interface{}, error) {
defer res.Body.Close()
return csaf.LoadROLIEFeed(res.Body)
all, err := io.ReadAll(res.Body)
if err != nil {
return nil, nil, err
}
feed, err := csaf.LoadROLIEFeed(bytes.NewReader(all))
if err != nil {
return nil, nil, err
}
var rolieDoc interface{}
err = json.NewDecoder(bytes.NewReader(all)).Decode(&rolieDoc)
return feed, rolieDoc, err
}()
if err != nil {
p.badProviderMetadata.add("Loading ROLIE feed failed: %v.", err)
return errContinue
}
errors, err := csaf.ValidateROLIE(rolieDoc)
if err != nil {
return err
}
if len(errors) > 0 {
p.badProviderMetadata.add("%s: Validating against JSON schema failed:", feed)
for _, msg := range errors {
p.badProviderMetadata.add(strings.ReplaceAll(msg, `%`, `%%`))
}
}
base, err := util.BaseURL(feed)
if err != nil {
p.badProviderMetadata.add("Bad base path: %v", err)
@ -753,7 +776,7 @@ func (p *processor) locateProviderMetadata(
}
for _, loc := range providerMetadataLocations {
url := "https://" + domain + "/" + loc
url := "https://" + domain + "/" + loc + "/provider-metadata.json"
ok, err := tryURL(url)
if err != nil {
if err == errContinue {