Fix small issues like unused symbols, unchecked errors etc.

Bump dependency on protobuf, which has a vulnerability.

Change-Id: I10385ff41302d1446c35af43ae72219fc9687150
Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/601376
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
Tatiana Bradley 2024-07-12 16:10:40 -04:00
Родитель fb09166f04
Коммит 3c3dfc5885
14 изменённых файлов: 12 добавлений и 86 удалений

Просмотреть файл

@ -19,7 +19,6 @@ var (
repoDir = flag.String("repo", ".", "Directory containing vulndb repo") repoDir = flag.String("repo", ".", "Directory containing vulndb repo")
jsonDir = flag.String("out", "out", "Directory to write JSON database to") jsonDir = flag.String("out", "out", "Directory to write JSON database to")
zipFile = flag.String("zip", "", "if provided, file to write zipped database to (for v1 database only)") zipFile = flag.String("zip", "", "if provided, file to write zipped database to (for v1 database only)")
indent = flag.Bool("indent", false, "Indent JSON for debugging")
) )
func main() { func main() {

Просмотреть файл

@ -12,7 +12,6 @@ import (
"context" "context"
"database/sql" "database/sql"
"fmt" "fmt"
"regexp"
secretmanager "cloud.google.com/go/secretmanager/apiv1" secretmanager "cloud.google.com/go/secretmanager/apiv1"
smpb "cloud.google.com/go/secretmanager/apiv1/secretmanagerpb" smpb "cloud.google.com/go/secretmanager/apiv1/secretmanagerpb"
@ -88,12 +87,6 @@ func QueryModule(ctx context.Context, db *sql.DB, modulePath string) (*Module, e
return m, nil return m, nil
} }
var passwordRegexp = regexp.MustCompile(`password=\S+`)
func redactPassword(dbinfo string) string {
return passwordRegexp.ReplaceAllLiteralString(dbinfo, "password=REDACTED")
}
// getSecret retrieves a secret from the GCP Secret Manager. // getSecret retrieves a secret from the GCP Secret Manager.
// secretFullName should be of the form "projects/PROJECT/secrets/NAME". // secretFullName should be of the form "projects/PROJECT/secrets/NAME".
func getSecret(ctx context.Context, secretFullName string) (_ string, err error) { func getSecret(ctx context.Context, secretFullName string) (_ string, err error) {

Просмотреть файл

@ -54,8 +54,6 @@ func init() {
flag.StringVar(&cfg.IssueRepo, "issue-repo", os.Getenv("VULN_WORKER_ISSUE_REPO"), "repo to create issues in") flag.StringVar(&cfg.IssueRepo, "issue-repo", os.Getenv("VULN_WORKER_ISSUE_REPO"), "repo to create issues in")
} }
const pkgsiteURL = "https://pkg.go.dev"
func main() { func main() {
flag.Usage = func() { flag.Usage = func() {
out := flag.CommandLine.Output() out := flag.CommandLine.Output()

2
go.mod
Просмотреть файл

@ -83,6 +83,6 @@ require (
google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 // indirect
google.golang.org/protobuf v1.31.0 // indirect google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect
) )

2
go.sum
Просмотреть файл

@ -329,6 +329,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=

Просмотреть файл

@ -11,8 +11,7 @@ import (
) )
// Fetch returns the CVE record associated with the ID. // Fetch returns the CVE record associated with the ID.
// It is intended one-off (non-batch) requests, and // It is intended one-off (non-batch) requests.
// is much faster than cvelistrepo.FetchCVE.
func Fetch(id string) (*CVERecord, error) { func Fetch(id string) (*CVERecord, error) {
c := NewClient(Config{ c := NewClient(Config{
Endpoint: ProdEndpoint, Endpoint: ProdEndpoint,

Просмотреть файл

@ -7,7 +7,6 @@
package cvelistrepo package cvelistrepo
import ( import (
"context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"io" "io"
@ -112,37 +111,6 @@ func blobReader(repo *git.Repository, hash plumbing.Hash) (io.Reader, error) {
return blob.Reader() return blob.Reader()
} }
// FetchCVE fetches the CVE file for cveID from the CVElist repo and returns
// the parsed info.
func FetchCVE[T any](ctx context.Context, repo *git.Repository, cveID string) (_ T, err error) {
defer derrors.Wrap(&err, "FetchCVE(repo, commit, %s)", cveID)
var zero T
ref, err := repo.Reference(plumbing.HEAD, true)
if err != nil {
return zero, err
}
ch := ref.Hash()
commit, err := repo.CommitObject(ch)
if err != nil {
return zero, err
}
files, err := Files(repo, commit)
if err != nil {
return zero, err
}
for _, f := range files {
if strings.Contains(f.Filename, cveID) {
cve, err := Parse[T](repo, f)
if err != nil {
return zero, err
}
return cve, nil
}
}
return zero, fmt.Errorf("%s not found", cveID)
}
// Parse unmarshals the contents of f. // Parse unmarshals the contents of f.
func Parse[T any](repo *git.Repository, f File) (T, error) { func Parse[T any](repo *git.Repository, f File) (T, error) {
var zero T var zero T

Просмотреть файл

@ -101,33 +101,6 @@ func TestFiles(t *testing.T) {
} }
} }
func TestFetchCVE(t *testing.T) {
testFetchCVE[*cve4.CVE](t, "v4", v4txtar)
testFetchCVE[*cve5.CVERecord](t, "v5", v5txtar)
}
func testFetchCVE[S report.Source](t *testing.T, name, txtarFile string) {
t.Run(name, func(t *testing.T) {
ctx := context.Background()
repo, _, err := gitrepo.TxtarRepoAndHead(txtarFile)
if err != nil {
t.Fatal(err)
}
for _, id := range cveIDs {
t.Run(id, func(t *testing.T) {
cve, err := FetchCVE[S](ctx, repo, id)
if err != nil {
t.Fatal(err)
}
if got, want := cve.SourceID(), id; got != want {
t.Errorf("FetchCVE(%s) ID = %s, want %s", id, got, want)
}
})
}
})
}
func TestParse(t *testing.T) { func TestParse(t *testing.T) {
testParse[*cve4.CVE](t, "v4", v4txtar) testParse[*cve4.CVE](t, "v4", v4txtar)
testParse[*cve5.CVERecord](t, "v5", v5txtar) testParse[*cve5.CVERecord](t, "v5", v5txtar)

Просмотреть файл

@ -6,7 +6,6 @@ package cveutils
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"net/url" "net/url"
"strings" "strings"
@ -18,8 +17,6 @@ import (
"golang.org/x/vulndb/internal/worker/log" "golang.org/x/vulndb/internal/worker/log"
) )
var errCVEVersionUnsupported = errors.New("unsupported CVE version")
// stdlibReferenceDataKeywords are words found in the reference data URL that // stdlibReferenceDataKeywords are words found in the reference data URL that
// indicate the CVE is about the standard library or a Go x-repo owned by the // indicate the CVE is about the standard library or a Go x-repo owned by the
// Go team. // Go team.

Просмотреть файл

@ -7,7 +7,7 @@ package database
import ( import (
"bytes" "bytes"
"compress/gzip" "compress/gzip"
"io/ioutil" "io"
"os" "os"
) )
@ -48,5 +48,5 @@ func readGzipped(filename string) ([]byte, error) {
} }
defer r.Close() defer r.Close()
return ioutil.ReadAll(r) return io.ReadAll(r)
} }

Просмотреть файл

@ -90,8 +90,8 @@ func Patched(module, commitHash string, r *repository) (_ map[string][]string, e
// resetWorktree takes a repository and its worktree and resets it to MAIN/MASTER@HEAD // resetWorktree takes a repository and its worktree and resets it to MAIN/MASTER@HEAD
func resetWorktree(r *git.Repository, w *git.Worktree) { func resetWorktree(r *git.Repository, w *git.Worktree) {
r.Fetch(&git.FetchOptions{}) _ = r.Fetch(&git.FetchOptions{})
w.Reset(&git.ResetOptions{ _ = w.Reset(&git.ResetOptions{
Mode: git.HardReset, Mode: git.HardReset,
}) })
} }

Просмотреть файл

@ -186,7 +186,7 @@ func testDirHashes(t *testing.T, s Store) {
} }
var ( var (
ghsa1, ghsa2, ghsa3, ghsa4, ghsa5 = "GHSA-xxxx-yyyy-1111", "GHSA-xxxx-yyyy-2222", "GHSA-xxxx-yyyy-3333", "GHSA-xxxx-yyyy-4444", "GHSA-xxxx-yyyy-5555" ghsa1, ghsa2 = "GHSA-xxxx-yyyy-1111", "GHSA-xxxx-yyyy-2222"
) )
func testGHSAs(t *testing.T, s Store) { func testGHSAs(t *testing.T, s Store) {

Просмотреть файл

@ -349,7 +349,9 @@ func TestDoUpdate(t *testing.T) {
mstore := store.NewMemStore() mstore := store.NewMemStore()
createCVE4Records(t, mstore, test.curCVEs) createCVE4Records(t, mstore, test.curCVEs)
createLegacyGHSARecords(t, mstore, test.curGHSAs) createLegacyGHSARecords(t, mstore, test.curGHSAs)
newCVEUpdater(repo, commit, mstore, rc, needsIssue).update(ctx) if err := newCVEUpdater(repo, commit, mstore, rc, needsIssue).update(ctx); err != nil {
t.Fatal(err)
}
got := mstore.CVE4Records() got := mstore.CVE4Records()
want := map[string]*store.CVE4Record{} want := map[string]*store.CVE4Record{}
for _, cr := range test.want { for _, cr := range test.want {

Просмотреть файл

@ -116,11 +116,6 @@ func (c *CheckUpdateError) Error() string {
return c.msg return c.msg
} }
const (
vulnDBBucket = "go-vulndb"
vulnDBURL = "https://storage.googleapis.com/" + vulnDBBucket
)
// GHSAListFunc is the type of a function that lists GitHub security advisories. // GHSAListFunc is the type of a function that lists GitHub security advisories.
type GHSAListFunc func(_ context.Context, since time.Time) ([]*ghsa.SecurityAdvisory, error) type GHSAListFunc func(_ context.Context, since time.Time) ([]*ghsa.SecurityAdvisory, error)