Fix checking for subdirs when parsing apks
This fixes the check for subdirectories in lib paths. The old check caused a crash. Test: Automated Fixes: 268582810 Change-Id: I520f1fd6772b11821e7c5c97bd51b45b603f5a7b
This commit is contained in:
@@ -56,10 +56,8 @@ const char* ValidLibraryPathLastSlash(const char* fileName, bool suppress64Bit,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Make sure there aren't subdirectories
|
||||
const char* abiOffset = fileName + APK_LIB_LEN;
|
||||
const size_t abiSize = lastSlash - abiOffset;
|
||||
if (memchr(abiOffset, '/', abiSize)) {
|
||||
// Make sure there aren't subdirectories by checking if the next / after lib/ is the last slash
|
||||
if (memchr(fileName + APK_LIB_LEN, '/', fileNameLen - APK_LIB_LEN) != lastSlash) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,4 +68,10 @@ TEST(ApkParsingTest, InvalidSubdirectories) {
|
||||
auto lastSlash = util::ValidLibraryPathLastSlash(path, false, false);
|
||||
ASSERT_THAT(lastSlash, IsNull());
|
||||
}
|
||||
|
||||
TEST(ApkParsingTest, InvalidFileAtRoot) {
|
||||
const char* path = "lib/library.so";
|
||||
auto lastSlash = util::ValidLibraryPathLastSlash(path, false, false);
|
||||
ASSERT_THAT(lastSlash, IsNull());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user