From b7f02ff970ae3a9c6cadad9b6ab83964f12e75d7 Mon Sep 17 00:00:00 2001 From: Minecrell Date: Mon, 20 Sep 2021 23:53:38 +0200 Subject: [PATCH] getModulesDep: disallow regex submatches (MR 12) At the moment modules in modules.dep are matched even on a submatch e.g. looking up "msm" ends up matching "snd-soc-msm8916-digital.ko" instead of "msm.ko". To fix this, disallow submatches using ^ and $. (cherry picked from commit 15e99c3658e74c7e7a87c86e99807625f9a41ef9) --- main.go | 2 +- main_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index e36101b..4302ad1 100644 --- a/main.go +++ b/main.go @@ -665,7 +665,7 @@ func getModuleDeps(modName string, modulesDep io.Reader) ([]string, error) { modNameReStr = s } } - re := regexp.MustCompile(modNameReStr) + re := regexp.MustCompile("^" + modNameReStr + "$") s := bufio.NewScanner(modulesDep) for s.Scan() { diff --git a/main_test.go b/main_test.go index 0819b27..f484515 100644 --- a/main_test.go +++ b/main_test.go @@ -40,6 +40,7 @@ func stringSlicesEqual(a []string, b []string) bool { } var testModuleDep string = ` +kernel/sound/soc/codecs/snd-soc-msm8916-digital.ko: kernel/net/sched/act_ipt.ko.xz: kernel/net/netfilter/x_tables.ko.xz kernel/drivers/watchdog/watchdog.ko.xz: kernel/drivers/usb/serial/ir-usb.ko.xz: kernel/drivers/usb/serial/usbserial.ko.xz @@ -53,6 +54,7 @@ kernel/net/bluetooth/hidp/hidp.ko.xz: kernel/net/bluetooth/bluetooth.ko.xz kerne kernel/fs/nls/nls_iso8859-1.ko.xz: kernel/net/vmw_vsock/vmw_vsock_virtio_transport.ko.xz: kernel/net/vmw_vsock/vmw_vsock_virtio_transport_common.ko.xz kernel/drivers/virtio/virtio.ko.xz kernel/drivers/virtio/virtio_ring.ko.xz kernel/net/vmw_vsock/vsock.ko.xz kernel/drivers/gpu/drm/panfrost/panfrost.ko.xz: kernel/drivers/gpu/drm/scheduler/gpu-sched.ko.xz +kernel/drivers/gpu/drm/msm/msm.ko: kernel/drivers/gpu/drm/drm_kms_helper.ko ` func TestGetModuleDeps(t *testing.T) { @@ -65,6 +67,8 @@ func TestGetModuleDeps(t *testing.T) { {"dw-wdt", []string{"kernel/drivers/watchdog/dw_wdt.ko.xz", "kernel/drivers/watchdog/watchdog.ko.xz"}}, {"gl518sm", []string{"kernel/drivers/hwmon/gl518sm.ko.xz"}}, + {"msm", []string{"kernel/drivers/gpu/drm/msm/msm.ko", + "kernel/drivers/gpu/drm/drm_kms_helper.ko"}}, } for _, table := range tables { out, err := getModuleDeps(table.in, strings.NewReader(testModuleDep))