sm.Versions = make(map[XenVersion]*VersionMeta)
- sm.InitVersion(XenVersionFull("master"))
+ sm.InitVersion(XenVersion("master"))
init = true
}
}
for _, fv := range versions {
- vm, prs := sm.Versions[fv.XenVersion()]
+ _, prs := sm.Versions[fv.XenVersion()]
if prs {
- if fv.Point() > vm.Latest.Point() {
- fmt.Printf("New version %v supercedes %v, discarding XSAs\n",
- fv, vm.Latest)
- vm.Latest = fv
- ForEachCodeTree(func(t Tree) error {
- vm.XSAs[t] = []int{}
- return nil
- })
- }
- } else if init && fv.XenVersion().IsGreaterEqualThan(limit) {
- sm.InitVersion(fv)
+ continue
+ }
+
+ if init && fv.XenVersion().IsGreaterEqualThan(limit) {
+ sm.InitVersion(fv.XenVersion())
} else {
fmt.Printf("Skipping version %v\n", fv)
}
}
type VersionMeta struct {
- Latest XenVersionFull
- XSAs map[Tree][]int
+ XSAs map[Tree][]int
}
type SecurityMeta struct {
return
}
-func (sm *SecurityMeta) InitVersion(fv XenVersionFull) *VersionMeta {
+func (sm *SecurityMeta) InitVersion(v XenVersion) *VersionMeta {
var vm VersionMeta
vm.XSAs = make(map[Tree][]int)
- vm.Latest = fv
ForEachCodeTree(func(t Tree) error {
vm.XSAs[t] = []int{}
return nil
})
- sm.Versions[fv.XenVersion()] = &vm
+ sm.Versions[v] = &vm
return &vm
}
fv XenVersionFull
seen bool
}{
- "master": {fv: "master"},
- "4.8": {fv: "4.8.0"},
- "4.7": {fv: "4.7.2"},
- "4.6": {fv: "4.6.5"},
- "4.5": {fv: "4.5.5"},
- "4.4": {fv: "4.4.4"},
+ "master": {},
+ "4.8": {},
+ "4.7": {},
+ "4.6": {},
+ "4.5": {},
+ "4.4": {},
}
for v := range G.config.Security.Versions {
pass = false
} else {
versions[v].seen = true
- if versions[v].fv != G.config.Security.Versions[v].Latest {
- st.Errorf("Expected fullversion %v, got %v\n",
- versions[v].fv,
- G.config.Security.Versions[v].Latest)
- pass = false
- }
}
}