diff options
author | 2023-02-06 01:27:19 -0800 | |
---|---|---|
committer | 2023-03-14 03:17:53 -0700 | |
commit | 5a4db981644ccf7a266fbb3fe41758b2a5a85eac (patch) | |
tree | a28b59a20ef3e0224b0be9f64533d730b2384b99 | |
parent | 2f18344d982e7c50922fa099a007646702a16a0f (diff) |
Remove usage of mFileName in ObbInfo
This field was not being set but was used in storage_manager.cpp:89,
which constructed a String16 using the nullptr. This internally
calls strlen on the null pointer, which causes a seg fault. Since
mFileName is not being set and getFileName has no other callsites,
remove the field altogether so nobody else tries to use it and pass
in the expected value at its only callsite.
Test: Calling AStorageManager_mountObb from NDK does not result in
a crash.
Signed-off-by: Sam Gao <ssgao@meta.com>
Upstream from Meta.
Change-Id: I4374148f466dacd62c659d3c94fd309674cb2d34
-rw-r--r-- | libs/androidfw/include/androidfw/ObbFile.h | 6 | ||||
-rw-r--r-- | native/android/storage_manager.cpp | 2 |
2 files changed, 1 insertions, 7 deletions
diff --git a/libs/androidfw/include/androidfw/ObbFile.h b/libs/androidfw/include/androidfw/ObbFile.h index 3dbf997dc367..38ece5c1546f 100644 --- a/libs/androidfw/include/androidfw/ObbFile.h +++ b/libs/androidfw/include/androidfw/ObbFile.h @@ -43,10 +43,6 @@ public: bool removeFrom(const char* filename); bool removeFrom(int fd); - const char* getFileName() const { - return mFileName; - } - const String8 getPackageName() const { return mPackageName; } @@ -127,8 +123,6 @@ private: /* The encryption salt. */ unsigned char mSalt[8]; - const char* mFileName; - size_t mFooterStart; bool parseObbFile(int fd); diff --git a/native/android/storage_manager.cpp b/native/android/storage_manager.cpp index 9e0a6eb476d3..294ca9cfd3b4 100644 --- a/native/android/storage_manager.cpp +++ b/native/android/storage_manager.cpp @@ -86,7 +86,7 @@ protected: return nullptr; } - String16 fileName(obbFile->getFileName()); + String16 fileName(canonicalPath); String16 packageName(obbFile->getPackageName()); size_t length; const unsigned char* salt = obbFile->getSalt(&length); |