@@ -136,7 +136,15 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs ova
136
136
}
137
137
}
138
138
139
- nReq := len (r .Packages ) + len (r .SrcPackages )
139
+ nReq := func () int {
140
+ switch ovalFamily {
141
+ case constant .Alpine :
142
+ return len (r .SrcPackages )
143
+ default :
144
+ return len (r .Packages )
145
+ }
146
+ }()
147
+
140
148
reqChan := make (chan request , nReq )
141
149
resChan := make (chan response , nReq )
142
150
errChan := make (chan error , nReq )
@@ -145,28 +153,34 @@ func getDefsByPackNameViaHTTP(r *models.ScanResult, url string) (relatedDefs ova
145
153
defer close (errChan )
146
154
147
155
go func () {
148
- for _ , pack := range r .Packages {
149
- req := request {
150
- packName : pack .Name ,
151
- versionRelease : pack .FormatVer (),
152
- newVersionRelease : pack .FormatNewVer (),
153
- isSrcPack : false ,
154
- arch : pack .Arch ,
155
- repository : pack .Repository ,
156
- modularityLabel : pack .ModularityLabel ,
157
- }
158
- if ovalFamily == constant .Amazon && ovalRelease == "2" && req .repository == "" {
159
- req .repository = "amzn2-core"
156
+ switch ovalFamily {
157
+ case constant .Alpine :
158
+ for _ , pack := range r .SrcPackages {
159
+ reqChan <- request {
160
+ packName : pack .Name ,
161
+ binaryPackNames : pack .BinaryNames ,
162
+ versionRelease : pack .Version ,
163
+ isSrcPack : true ,
164
+ // arch: pack.Arch,
165
+ }
160
166
}
161
- reqChan <- req
162
- }
163
- for _ , pack := range r .SrcPackages {
164
- reqChan <- request {
165
- packName : pack .Name ,
166
- binaryPackNames : pack .BinaryNames ,
167
- versionRelease : pack .Version ,
168
- isSrcPack : true ,
169
- // arch: pack.Arch,
167
+ default :
168
+ for _ , pack := range r .Packages {
169
+ req := request {
170
+ packName : pack .Name ,
171
+ versionRelease : pack .FormatVer (),
172
+ newVersionRelease : pack .FormatNewVer (),
173
+ isSrcPack : false ,
174
+ arch : pack .Arch ,
175
+ repository : func () string {
176
+ if ovalFamily == constant .Amazon && ovalRelease == "2" && pack .Repository == "" {
177
+ return "amzn2-core"
178
+ }
179
+ return pack .Repository
180
+ }(),
181
+ modularityLabel : pack .ModularityLabel ,
182
+ }
183
+ reqChan <- req
170
184
}
171
185
}
172
186
}()
@@ -313,31 +327,42 @@ func getDefsByPackNameFromOvalDB(r *models.ScanResult, driver ovaldb.DB) (relate
313
327
}
314
328
}
315
329
316
- requests := []request {}
317
- for _ , pack := range r .Packages {
318
- req := request {
319
- packName : pack .Name ,
320
- versionRelease : pack .FormatVer (),
321
- newVersionRelease : pack .FormatNewVer (),
322
- arch : pack .Arch ,
323
- repository : pack .Repository ,
324
- modularityLabel : pack .ModularityLabel ,
325
- isSrcPack : false ,
326
- }
327
- if ovalFamily == constant .Amazon && ovalRelease == "2" && req .repository == "" {
328
- req .repository = "amzn2-core"
330
+ requests := func () []request {
331
+ switch ovalFamily {
332
+ case constant .Alpine :
333
+ rs := make ([]request , 0 , len (r .SrcPackages ))
334
+ for _ , pack := range r .SrcPackages {
335
+ rs = append (rs , request {
336
+ packName : pack .Name ,
337
+ binaryPackNames : pack .BinaryNames ,
338
+ versionRelease : pack .Version ,
339
+ arch : pack .Arch ,
340
+ isSrcPack : true ,
341
+ })
342
+ }
343
+ return rs
344
+ default :
345
+ rs := make ([]request , 0 , len (r .Packages ))
346
+ for _ , pack := range r .Packages {
347
+ rs = append (rs , request {
348
+ packName : pack .Name ,
349
+ versionRelease : pack .FormatVer (),
350
+ newVersionRelease : pack .FormatNewVer (),
351
+ arch : pack .Arch ,
352
+ repository : func () string {
353
+ if ovalFamily == constant .Amazon && ovalRelease == "2" && pack .Repository == "" {
354
+ return "amzn2-core"
355
+ }
356
+ return pack .Repository
357
+ }(),
358
+ modularityLabel : pack .ModularityLabel ,
359
+ isSrcPack : false ,
360
+ })
361
+ }
362
+ return rs
329
363
}
330
- requests = append (requests , req )
331
- }
332
- for _ , pack := range r .SrcPackages {
333
- requests = append (requests , request {
334
- packName : pack .Name ,
335
- binaryPackNames : pack .BinaryNames ,
336
- versionRelease : pack .Version ,
337
- arch : pack .Arch ,
338
- isSrcPack : true ,
339
- })
340
- }
364
+ }()
365
+
341
366
for _ , req := range requests {
342
367
definitions , err := driver .GetByPackName (ovalFamily , ovalRelease , req .packName , req .arch )
343
368
if err != nil {
0 commit comments