Skip to content

Commit a52e34f

Browse files
committed
fix(pkg/kernelrelease): fixed kernelrelease regex for weird COS kernels.
Signed-off-by: Federico Di Pierro <nierro92@gmail.com>
1 parent 126a99b commit a52e34f

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

pkg/kernelrelease/kernelrelease.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
)
2626

2727
var (
28-
kernelVersionPattern = regexp.MustCompile(`(?P<fullversion>^(?P<version>0|[1-9]\d*)\.(?P<patchlevel>0|[1-9]\d*)[.+]?(?P<sublevel>0|[1-9]\d*)?)(?P<fullextraversion>[-.+](?P<extraversion>\d+|\d*[a-zA-Z-][0-9a-zA-Z-]*)([\.+~](\d+|\d*[a-zA-Z-][0-9a-zA-Z-_]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$`)
28+
kernelVersionPattern = regexp.MustCompile(`(?P<fullversion>^(?P<version>0|[1-9]\d*)\.(?P<patchlevel>0|[1-9]\d*)[.+]?(?P<sublevel>0|[1-9]\d*)?)(?P<fullextraversion>[-.+](?P<extraversion>\d+|\d*[a-zA-Z-][0-9a-zA-Z-]*)?([\.+~](\d+|\d*[a-zA-Z-][0-9a-zA-Z-_]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$`)
2929
)
3030

3131
const (

pkg/kernelrelease/kernelrelease_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -248,11 +248,26 @@ func TestFromString(t *testing.T) {
248248
FullExtraversion: "-19.0009.28",
249249
},
250250
},
251+
// See https://github.com/falcosecurity/falco/issues/3278
252+
"strange cos version": {
253+
kernelVersionStr: "5.15.146+",
254+
want: KernelRelease{
255+
Fullversion: "5.15.146",
256+
Version: semver.Version{
257+
Major: 5,
258+
Minor: 15,
259+
Patch: 146,
260+
},
261+
Extraversion: "",
262+
FullExtraversion: "+",
263+
},
264+
},
251265
}
252266
for name, tt := range tests {
253267
t.Run(name, func(t *testing.T) {
254268
got := FromString(tt.kernelVersionStr)
255269
assert.DeepEqual(t, tt.want, got)
270+
assert.Equal(t, got.String(), tt.kernelVersionStr)
256271
})
257272
}
258273
}

0 commit comments

Comments
 (0)