in providers/nvd/cve.go [452:501]
func newMetaFile(r io.Reader) (metaFile, error) {
m := metaFile{}
r = io.LimitReader(r, 16*1024)
b, err := ioutil.ReadAll(r)
if err != nil {
return m, err
}
lines := bytes.Split(b, []byte("\r\n"))
for i, line := range lines {
if len(line) == 0 {
break
}
lineno := i + 1
parts := bytes.SplitN(line, []byte(":"), 2)
if len(parts) != 2 {
return m, fmt.Errorf("line %d: expecting key:value not %q", lineno, string(line))
}
key := string(parts[0])
val := string(parts[1])
switch key {
case "lastModifiedDate":
t, err := time.Parse(time.RFC3339, val)
if err != nil {
return m, fmt.Errorf("line %d: expecting lastModifiedDate={RFC3339} not %q", lineno, string(line))
}
m.LastModifiedDate = t
case "size":
v, err := strconv.Atoi(val)
if err != nil {
return m, fmt.Errorf("line %d: expecting size={int} not %q", lineno, string(line))
}
m.Size = v
case "zipSize":
v, err := strconv.Atoi(val)
if err != nil {
return m, fmt.Errorf("line %d: expecting zipSize={int} not %q", lineno, string(line))
}
m.ZipSize = v
case "gzSize":
v, err := strconv.Atoi(val)
if err != nil {
return m, fmt.Errorf("line %d: expecting gzSize={int} not %q", lineno, string(line))
}
m.GzSize = v
case "sha256":
m.SHA256 = strings.ToUpper(val)
}
}
return m, nil
}