Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12312e07 authored by Jeremy Meyer's avatar Jeremy Meyer
Browse files

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
parent 1a936d17
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -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;
    }

+6 −0
Original line number Diff line number Diff line
@@ -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());
}
}
 No newline at end of file