Skip to content

Commit aadbad1

Browse files
authored
fix(alpine): exclude empty licenses for apk packages (aquasecurity#6130)
1 parent 14a0981 commit aadbad1

File tree

3 files changed

+55
-9
lines changed

3 files changed

+55
-9
lines changed

pkg/fanal/analyzer/pkg/apk/apk.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ func (a alpinePkgAnalyzer) parseLicense(line string) []string {
147147
for i, s := range strings.Fields(line) {
148148
s = strings.Trim(s, "()")
149149
switch {
150+
case s == "":
151+
continue
150152
case s == "AND" || s == "OR":
151153
continue
152154
case i > 0 && (s == "1.0" || s == "2.0" || s == "3.0"):

pkg/fanal/analyzer/pkg/apk/apk_test.go

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,24 @@ var pkgs = []types.Package{
281281
"usr/include/sqlite3.h",
282282
},
283283
},
284+
285+
{
286+
287+
Name: "ada-libs",
288+
Version: "2.7.4-r0",
289+
SrcName: "ada",
290+
SrcVersion: "2.7.4-r0",
291+
Licenses: []string{"Apache-2.0", "MIT", "MPL-2.0"},
292+
Digest: "sha1:593154f80c440685448e0f52479725d7bc9b678d",
293+
DependsOn: []string{
294+
295+
},
296+
Arch: "x86_64",
297+
InstalledFiles: []string{
298+
"usr/lib/libada.so.2",
299+
"usr/lib/libada.so.2.7.4",
300+
},
301+
},
284302
}
285303

286304
var files = []string{
@@ -385,27 +403,29 @@ var files = []string{
385403
"usr/lib/pkgconfig/sqlite3.pc",
386404
"usr/include/sqlite3ext.h",
387405
"usr/include/sqlite3.h",
406+
407+
408+
"usr/lib/libada.so.2",
409+
"usr/lib/libada.so.2.7.4",
388410
}
389411

390412
func TestParseApkInfo(t *testing.T) {
391-
var tests = map[string]struct {
413+
var tests = []struct {
414+
name string
392415
path string
393416
wantPkgs []types.Package
394417
wantFiles []string
395418
}{
396-
"Valid": {
397-
path: "./testdata/apk",
398-
wantPkgs: pkgs,
399-
wantFiles: files,
400-
},
401-
"do not retain pkg installed files": {
419+
{
420+
name: "happy path",
402421
path: "./testdata/apk",
403422
wantPkgs: pkgs,
404423
wantFiles: files,
405424
},
406425
}
407-
for testname, tt := range tests {
408-
t.Run(testname, func(t *testing.T) {
426+
427+
for _, tt := range tests {
428+
t.Run(tt.name, func(t *testing.T) {
409429
a := alpinePkgAnalyzer{}
410430
f, err := os.Open(tt.path)
411431
require.NoError(t, err)

pkg/fanal/analyzer/pkg/apk/testdata/apk

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,3 +538,27 @@ R:sqlite3ext.h
538538
Z:Q1riWNHq9ufQzhyMXm7raBW+ZL9z0=
539539
R:sqlite3.h
540540
Z:Q11MT2xE8JuMfBRYu6BDTz2PY95Vw=
541+
542+
C:Q1WTFU+AxEBoVEjg9SR5cl17ybZ40=
543+
P:ada-libs
544+
V:2.7.4-r0
545+
A:x86_64
546+
S:166703
547+
I:491520
548+
T:WHATWG-compliant and fast URL parser written in modern C++ (libraries)
549+
U:https://ada-url.github.io/ada
550+
L:( Apache-2.0 OR MIT ) AND MPL-2.0
551+
o:ada
552+
m:Jakub Jirutka <[email protected]>
553+
t:1701726025
554+
c:fa40f3454f9c60870d54115aac4161f9ab7c667f
555+
D:so:libc.musl-x86_64.so.1
556+
p:so:libada.so.2=2.7.4
557+
F:usr
558+
F:usr/lib
559+
R:libada.so.2
560+
a:0:0:777
561+
Z:Q1qDM97tDEseDtdayU2yr3eJjOl5I=
562+
R:libada.so.2.7.4
563+
a:0:0:755
564+
Z:Q1LUjWSS3wH8zDBHd0pYxED/hWBhk=

0 commit comments

Comments
 (0)