diff options
author | Aart Bik <ajcbik@google.com> | 2016-04-21 15:51:41 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2016-05-26 15:17:07 -0700 |
commit | acca427853e7e06274437d871ac67f23fcc14def (patch) | |
tree | af92ab9d48f2512c212069968c49cfc8af357373 | |
parent | 0f6f6f415ba263e29ba8ee1294444ae383492a40 (diff) | |
download | dalvik-lollipop-mr1-cts-release.tar.gz |
Fix potential buffer overrun.android-cts-5.1_r28android-cts-5.1_r27android-cts-5.1_r26android-cts-5.1_r25android-cts-5.1_r24android-cts-5.1_r23android-cts-5.1_r22android-cts-5.1_r21android-cts-5.1_r20android-cts-5.1_r19android-cts-5.1_r18android-cts-5.1_r17android-cts-5.1_r16android-cts-5.1_r15android-cts-5.1_r14android-cts-5.1_r13android-5.1.1_r38lollipop-mr1-releaselollipop-mr1-cts-release
BUG=27840771
Change-Id: I240f188b2e8f4b45d90138cfb3b14869cf506452
-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 031ec9177..a9ea3a2d5 100644 --- a/libdex/OptInvocation.cpp +++ b/libdex/OptInvocation.cpp @@ -89,9 +89,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 @@ -99,8 +99,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 @@ -138,7 +138,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); |