summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAart Bik <ajcbik@google.com>2016-04-21 15:51:41 -0700
committerJessica Wagantall <jwagantall@cyngn.com>2016-07-08 13:31:46 -0700
commit498c05d48be0f324abf6f2a27814a9b3beae5f6b (patch)
treeaf92ab9d48f2512c212069968c49cfc8af357373
parent0f6f6f415ba263e29ba8ee1294444ae383492a40 (diff)
downloadandroid_dalvik-stable/cm-12.1-YOG7D.tar.gz
android_dalvik-stable/cm-12.1-YOG7D.tar.bz2
android_dalvik-stable/cm-12.1-YOG7D.zip
Fix potential buffer overrun.stable/cm-12.1-YOG7D
BUG=27840771 CYNGNOS-3020 Change-Id: I240f188b2e8f4b45d90138cfb3b14869cf506452 (cherry picked from commit 38025bc7fa31b231ae7b1575e0faf62a7f0953cf)
-rw-r--r--libdex/OptInvocation.cpp10
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);