diff options
author | 2012-01-10 08:41:33 -0800 | |
---|---|---|
committer | 2012-01-10 15:43:24 -0800 | |
commit | 77b6aaf62d9f4ba4c653090e4d79b46228cdcdef (patch) | |
tree | a4523690932d082f561217899ea62921318eca47 | |
parent | 38e90751a25606459a9e571aa1b6c992d4c64151 (diff) |
Fix bug in JetPlayer::loadFromFile
A long pathname would corrupt the heap due to incorrect use of strncpy.
Also was using hard-coded constant 256 instead of PATH_MAX.
Change-Id: Iba382bbb38624fbc41fec91449f9814f77d4ac0d
-rw-r--r-- | include/media/JetPlayer.h | 2 | ||||
-rw-r--r-- | media/libmedia/JetPlayer.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/media/JetPlayer.h b/include/media/JetPlayer.h index 6d539897429d..491a950b2d19 100644 --- a/include/media/JetPlayer.h +++ b/include/media/JetPlayer.h @@ -94,7 +94,7 @@ private: S_JET_STATUS mJetStatus; S_JET_STATUS mPreviousJetStatus; - char mJetFilePath[256]; + char mJetFilePath[PATH_MAX]; class JetPlayerThread : public Thread { public: diff --git a/media/libmedia/JetPlayer.cpp b/media/libmedia/JetPlayer.cpp index 188e5829c7c4..38f05f2d3f9a 100644 --- a/media/libmedia/JetPlayer.cpp +++ b/media/libmedia/JetPlayer.cpp @@ -338,8 +338,8 @@ int JetPlayer::loadFromFile(const char* path) Mutex::Autolock lock(mMutex); mEasJetFileLoc = (EAS_FILE_LOCATOR) malloc(sizeof(EAS_FILE)); - memset(mJetFilePath, 0, 256); - strncpy(mJetFilePath, path, strlen(path)); + strncpy(mJetFilePath, path, sizeof(mJetFilePath)); + mJetFilePath[sizeof(mJetFilePath) - 1] = '\0'; mEasJetFileLoc->path = mJetFilePath; mEasJetFileLoc->fd = 0; |