diff --git a/cmd/guacone/cmd/vulnerability.go b/cmd/guacone/cmd/vulnerability.go index 79008cfa98..032f0b9782 100644 --- a/cmd/guacone/cmd/vulnerability.go +++ b/cmd/guacone/cmd/vulnerability.go @@ -210,20 +210,20 @@ func printVulnInfoByVulnId(ctx context.Context, gqlclient graphql.Client, t tabl logger.Fatalf("error querying neighbor: %v", err) } } else { - foundHasSBOMPkg, err := model.HasSBOMs(ctx, gqlclient, model.HasSBOMSpec{Uri: &opts.searchString}) + foundHasSBOM, err := model.HasSBOMs(ctx, gqlclient, model.HasSBOMSpec{Uri: &opts.searchString}) if err != nil { logger.Fatalf("failed getting hasSBOM via URI: %s with error: %w", opts.searchString, err) } - if len(foundHasSBOMPkg.HasSBOM) != 1 { + if len(foundHasSBOM.HasSBOM) != 1 { logger.Fatalf("failed to located singular hasSBOM based on URI") } - if pkgResponse, ok := foundHasSBOMPkg.HasSBOM[0].Subject.(*model.AllHasSBOMTreeSubjectPackage); ok { + if pkgResponse, ok := foundHasSBOM.HasSBOM[0].Subject.(*model.AllHasSBOMTreeSubjectPackage); ok { var vulnNeighborError error path, tableRows, vulnNeighborError = queryVulnsViaVulnNodeNeighbors(ctx, gqlclient, pkgResponse.Namespaces[0].Names[0].Versions[0].Id, vulnResponse.Vulnerabilities, opts.depth, opts.pathsToReturn) if vulnNeighborError != nil { logger.Fatalf("error querying neighbor: %v", err) } - } else if artResponse, ok := foundHasSBOMPkg.HasSBOM[0].Subject.(*model.AllHasSBOMTreeSubjectArtifact); ok { + } else if artResponse, ok := foundHasSBOM.HasSBOM[0].Subject.(*model.AllHasSBOMTreeSubjectArtifact); ok { occur := searchArtToPkg(ctx, gqlclient, artResponse.Algorithm+":"+artResponse.Digest, logger) subjectPackage, ok := occur.IsOccurrence[0].Subject.(*model.AllIsOccurrencesTreeSubjectPackage) if ok { @@ -233,9 +233,8 @@ func printVulnInfoByVulnId(ctx context.Context, gqlclient graphql.Client, t tabl logger.Fatalf("error querying neighbor: %v", err) } } - } else { - logger.Fatalf("located hasSBOM does not have a subject that is a package") + logger.Fatalf("located hasSBOM does not have a subject that is a package or artifact") } } if len(path) > 0 { @@ -380,8 +379,9 @@ func searchDependencyPackagesReverse(ctx context.Context, gqlclient graphql.Clie nodeMap[now] = nowNode } + // not found so return nil if topPkgID != "" && !found { - return nil, fmt.Errorf("no path found up to specified length") + return nil, nil } var now string