diff options
author | Aart Bik <ajcbik@google.com> | 2016-05-02 22:16:48 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-05-02 22:16:48 +0000 |
commit | f984fa7d59f680eabb13920aa2b4dd2cbfc8be68 (patch) | |
tree | 08b030eed25deb93283d48ae3f40d9f6a1f05e45 | |
parent | f8ed7d3f0ea87b3fc1aa72859386c82d8d9bdbd4 (diff) | |
parent | a0af385aae066ee3e3b5414b4dbeb5acb03b3e9e (diff) | |
download | android_dalvik-f984fa7d59f680eabb13920aa2b4dd2cbfc8be68.tar.gz android_dalvik-f984fa7d59f680eabb13920aa2b4dd2cbfc8be68.tar.bz2 android_dalvik-f984fa7d59f680eabb13920aa2b4dd2cbfc8be68.zip |
Fix potential buffer overrun. am: 38025bc7fa am: 805b415be6 am: 0e17e18496 am: 8e37aa191f am: e5c4e849e2 am: 46464a20e0 am: 3bbe8817e6 am: 63e01f731f
am: a0af385aae
* commit 'a0af385aae066ee3e3b5414b4dbeb5acb03b3e9e':
Fix potential buffer overrun.
Change-Id: Ic52a3476c569227eb2146b4ac653fb8a3f58e068
-rw-r--r-- | libdex/OptInvocation.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libdex/OptInvocation.cpp b/libdex/OptInvocation.cpp index be7f70b50..bfad44b26 100644 --- a/libdex/OptInvocation.cpp +++ b/libdex/OptInvocation.cpp @@ -87,9 +87,9 @@ char* dexOptGenerateCacheFileName(const char* fileName, const char* subFileName) ALOGE("Can't get CWD while opening jar file"); return NULL; } - strncat(absoluteFile, "/", kBufLen); + strncat(absoluteFile, "/", kBufLen - strlen(absoluteFile)); } - strncat(absoluteFile, fileName, kBufLen); + strncat(absoluteFile, fileName, kBufLen - strlen(absoluteFile)); /* * Append the name of the Jar file entry, if any. This is not currently @@ -97,8 +97,8 @@ char* dexOptGenerateCacheFileName(const char* fileName, const char* subFileName) * in a Jar. */ if (subFileName != NULL) { - strncat(absoluteFile, "/", kBufLen); - strncat(absoluteFile, subFileName, kBufLen); + strncat(absoluteFile, "/", kBufLen - strlen(absoluteFile)); + strncat(absoluteFile, subFileName, kBufLen - strlen(absoluteFile)); } /* Turn the path into a flat filename by replacing @@ -136,7 +136,7 @@ char* dexOptGenerateCacheFileName(const char* fileName, const char* subFileName) /* Tack on the file name for the actual cache file path. */ - strncat(nameBuf, absoluteFile, kBufLen); + strncat(nameBuf, absoluteFile, kBufLen - strlen(nameBuf)); ALOGV("Cache file for '%s' '%s' is '%s'", fileName, subFileName, nameBuf); return strdup(nameBuf); |