]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
libkmod: Fix missing module normalization from kernel cmdline
authorLucas De Marchi <demarchi@kernel.org>
Sat, 8 Aug 2026 04:18:11 +0000 (23:18 -0500)
committerLucas De Marchi <demarchi@kernel.org>
Mon, 10 Aug 2026 13:42:24 +0000 (08:42 -0500)
Normalize it before adding the blacklist. Without normalizing it we
have, with just the test addition:

$ ./build/testsuite/test-modprobe modprobe_param_kcmdline9
TESTSUITE: running modprobe_param_kcmdline9, in forked context
TESTSUITE: ERR: Outputs do not match on STDOUT:
TESTSUITE: ERR: correct:
...
blacklist foo_bar
...
TESTSUITE: ERR: wrong:
blacklist foo-bar
TESTSUITE: ERR: FAILED: exit ok but outputs do not match: modprobe_param_kcmdline9

Link: https://github.com/kmod-project/kmod/pull/312
Signed-off-by: Lucas De Marchi <demarchi@kernel.org>
libkmod/libkmod-config.c
testsuite/rootfs-pristine/test-modprobe/module-param-kcmdline9/correct.txt
testsuite/rootfs-pristine/test-modprobe/module-param-kcmdline9/proc/cmdline

index 3f21e46cff694e6cb6c58d34a0a6bd712f2fb881..6938ff99947322f55394c6e0b8fbaa41704e9a58 100644 (file)
@@ -618,6 +618,9 @@ static void kcmdline_parse_result(struct kmod_config *config, char *modname, cha
                        if (t == NULL)
                                break;
 
+                       if (underscores(t) < 0)
+                               continue;
+
                        kmod_config_add_blacklist(config, t);
                }
        } else {
index e69f813dd7cd40c39f245f7e6e527500cbb5302f..f8399e12cb76d69fac67587594cf743d5d400176 100644 (file)
@@ -3,6 +3,7 @@ blacklist bar
 blacklist foo2
 blacklist bar2
 blacklist foobar
+blacklist foo_bar
 
 # End of configuration files. Dumping indexes now:
 
index dc78f9bcf3b94a5ffc103459f47303c40cfae397..fe7af674cf2a8ffad18ecc230ee048c6d6e0cbfe 100644 (file)
@@ -1 +1 @@
-modprobe.blacklist=foo,bar modprobe.blacklist=foo2 quiet modprobe.blacklist=bar2 rw modprobe.blacklist=foobar
+modprobe.blacklist=foo,bar modprobe.blacklist=foo2 quiet modprobe.blacklist=bar2 rw modprobe.blacklist=foobar modprobe.blacklist=foo-bar