Loading libmodprobe/libmodprobe.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ bool Modprobe::ParseDepCallback(const std::string& base_path, deps.emplace_back(prefix + args[0].substr(0, pos)); } else { LOG(ERROR) << "dependency lines must start with name followed by ':'"; return false; } // Remaining items are dependencies of our module Loading libmodprobe/libmodprobe_test.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -179,3 +179,16 @@ TEST(libmodprobe, Test) { m.EnableBlocklist(true); EXPECT_FALSE(m.LoadWithAliases("test4", true)); } TEST(libmodprobe, ModuleDepLineWithoutColonIsSkipped) { TemporaryDir dir; auto dir_path = std::string(dir.path); ASSERT_TRUE(android::base::WriteStringToFile( "no_colon.ko no_colon.ko\n", dir_path + "/modules.dep", 0600, getuid(), getgid())); kernel_cmdline = ""; test_modules = {dir_path + "/no_colon.ko"}; Modprobe m({dir.path}); EXPECT_FALSE(m.LoadWithAliases("no_colon", true)); } Loading
libmodprobe/libmodprobe.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ bool Modprobe::ParseDepCallback(const std::string& base_path, deps.emplace_back(prefix + args[0].substr(0, pos)); } else { LOG(ERROR) << "dependency lines must start with name followed by ':'"; return false; } // Remaining items are dependencies of our module Loading
libmodprobe/libmodprobe_test.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -179,3 +179,16 @@ TEST(libmodprobe, Test) { m.EnableBlocklist(true); EXPECT_FALSE(m.LoadWithAliases("test4", true)); } TEST(libmodprobe, ModuleDepLineWithoutColonIsSkipped) { TemporaryDir dir; auto dir_path = std::string(dir.path); ASSERT_TRUE(android::base::WriteStringToFile( "no_colon.ko no_colon.ko\n", dir_path + "/modules.dep", 0600, getuid(), getgid())); kernel_cmdline = ""; test_modules = {dir_path + "/no_colon.ko"}; Modprobe m({dir.path}); EXPECT_FALSE(m.LoadWithAliases("no_colon", true)); }