libmodprobe: Fail when modules.dep lacks colon
The first argument in a modules.dep line must end with a colon so fail if that condition is not met. Test: libmodprobe_tests Change-Id: I6f3a22758302f16b924e5a16f7af9bf35f1a56f3
This commit is contained in:
parent
f9c36a2ca6
commit
fb18f6ef05
2 changed files with 14 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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…
Reference in a new issue