From b85b28b4e82ce182f8ee20b8671aac6847b7f2b6 Mon Sep 17 00:00:00 2001 From: yangwei999 <348134071@qq.com> Date: Wed, 24 Jan 2024 11:10:40 +0800 Subject: [PATCH] support loongarch rpm --- cve-vulner-manager/taskhandler/cvrf.go | 40 +++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/cve-vulner-manager/taskhandler/cvrf.go b/cve-vulner-manager/taskhandler/cvrf.go index 9aca6aa..06b0922 100644 --- a/cve-vulner-manager/taskhandler/cvrf.go +++ b/cve-vulner-manager/taskhandler/cvrf.go @@ -22,6 +22,8 @@ import ( "github.com/astaxie/beego/logs" ) +const loongArchName = "loongarch64" + type CvrfSa struct { XMLName xml.Name `xml:"cvrfdoc,omitempty"` Xmlns string `xml:"xmlns,attr"` @@ -898,6 +900,7 @@ func BuildProductTree(cvrfsa *CvrfSa, v models.ExcelExport, pkg []models.Package fullProductNameSlicenoarch := make([]FullProductName, 0) fullProductNameSlicesrc := make([]FullProductName, 0) fullProductNameSlicex86_64 := make([]FullProductName, 0) + fullProductNameSliceLoong := make([]FullProductName, 0) if len(pkg) > 0 { for _, pk := range pkg { if opBranch.Name == "aarch64" { @@ -951,6 +954,23 @@ func BuildProductTree(cvrfsa *CvrfSa, v models.ExcelExport, pkg []models.Package } fullProductNameSlicex86_64 = append(fullProductNameSlicex86_64, fullProductNamex86_64) } + } else if opBranch.Name == loongArchName { + isExist := false + for _, fp := range opBranch.FullProductName { + if fp.FullProductName == pk.PackName && fp.Cpe == cpe { + isExist = true + break + } + } + if !isExist && strings.Contains(pk.PackName, loongArchName) { + var fullProductNameLoong FullProductName + fullProductNameLoong.FullProductName = pk.PackName + fullProductNameLoong.Cpe = cpe + if p, ok := checkRpm(pk.PackName); ok { + fullProductNameLoong.ProductId = p + } + fullProductNameSliceLoong = append(fullProductNameSliceLoong, fullProductNameLoong) + } } else { isExist := false for _, fp := range opBranch.FullProductName { @@ -977,6 +997,8 @@ func BuildProductTree(cvrfsa *CvrfSa, v models.ExcelExport, pkg []models.Package opBranch.FullProductName = append(opBranch.FullProductName, fullProductNameSlicenoarch...) } else if opBranch.Name == "x86_64" { opBranch.FullProductName = append(opBranch.FullProductName, fullProductNameSlicex86_64...) + } else if opBranch.Name == loongArchName { + opBranch.FullProductName = append(opBranch.FullProductName, fullProductNameSliceLoong...) } else { opBranch.FullProductName = append(opBranch.FullProductName, fullProductNameSlicesrc...) } @@ -1006,6 +1028,7 @@ func BuildProductTree(cvrfsa *CvrfSa, v models.ExcelExport, pkg []models.Package fullProductNameSlicenoarch := make([]FullProductName, 0) fullProductNameSlicesrc := make([]FullProductName, 0) fullProductNameSlicex86_64 := make([]FullProductName, 0) + fullProductNameSliceLoong := make([]FullProductName, 0) if len(pkg) > 0 { for _, pk := range pkg { if strings.Contains(pk.PackName, ".aarch64.") { @@ -1032,6 +1055,14 @@ func BuildProductTree(cvrfsa *CvrfSa, v models.ExcelExport, pkg []models.Package fullProductNamex86_64.ProductId = p } fullProductNameSlicex86_64 = append(fullProductNameSlicex86_64, fullProductNamex86_64) + } else if strings.Contains(pk.PackName, loongArchName) { + var fullProductNameLoong FullProductName + fullProductNameLoong.FullProductName = pk.PackName + fullProductNameLoong.Cpe = cpe + if p, ok := checkRpm(pk.PackName); ok { + fullProductNameLoong.ProductId = p + } + fullProductNameSliceLoong = append(fullProductNameSliceLoong, fullProductNameLoong) } else { var fullProductNamenoarch FullProductName fullProductNamenoarch.FullProductName = pk.PackName @@ -1071,6 +1102,13 @@ func BuildProductTree(cvrfsa *CvrfSa, v models.ExcelExport, pkg []models.Package openEulerBranchx86_64.FullProductName = fullProductNameSlicex86_64 openEulerBranchSlice = append(openEulerBranchSlice, openEulerBranchx86_64) } + if len(fullProductNameSliceLoong) > 0 { + var openEulerBranchLoong OpenEulerBranch + openEulerBranchLoong.Type = "Package Arch" + openEulerBranchLoong.Name = loongArchName + openEulerBranchLoong.FullProductName = fullProductNameSliceLoong + openEulerBranchSlice = append(openEulerBranchSlice, openEulerBranchLoong) + } productTree.OpenEulerBranch = openEulerBranchSlice cvrfsa.ProductTree = &productTree } @@ -1379,7 +1417,7 @@ func PostFile(filename string, targetUrl string) error { return upfileErr } -//downlaod file +// downlaod file func GetFile(url, filePath string) error { res, err := http.Get(url) if err != nil { -- Gitee