summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergio Giro <sgiro@google.com>2016-06-28 18:26:10 +0100
committergitbuildkicker <android-build@google.com>2016-08-01 19:13:26 -0700
commit866dc26ad4a98cc835d075b627326e7d7e52ffa1 (patch)
tree54c57c23870e0246066e21e41d21c1168964ec17
parent335702d106797bce8a88044783fa1fc1d5f751d0 (diff)
downloadbase-866dc26ad4a98cc835d075b627326e7d7e52ffa1.tar.gz
Add bound checks to utf16_to_utf8
Test: ran libaapt2_tests64 Bug: 29250543 Change-Id: I1ebc017af623b6514cf0c493e8cd8e1d59ea26c3 (cherry picked from commit 4781057e78f63e0e99af109cebf3b6a78f4bfbb6)
-rw-r--r--tools/aapt/Android.mk2
-rw-r--r--tools/aapt2/util/Util.cpp4
-rw-r--r--tools/split-select/Android.mk2
3 files changed, 5 insertions, 3 deletions
diff --git a/tools/aapt/Android.mk b/tools/aapt/Android.mk
index b7014454771c..2a490d1097ef 100644
--- a/tools/aapt/Android.mk
+++ b/tools/aapt/Android.mk
@@ -57,8 +57,8 @@ aaptTests := \
aaptHostStaticLibs := \
libandroidfw \
libpng \
- liblog \
libutils \
+ liblog \
libcutils \
libexpat \
libziparchive-host \
diff --git a/tools/aapt2/util/Util.cpp b/tools/aapt2/util/Util.cpp
index 7b0c71d93bb5..5a87c334c59e 100644
--- a/tools/aapt2/util/Util.cpp
+++ b/tools/aapt2/util/Util.cpp
@@ -441,8 +441,10 @@ std::string utf16ToUtf8(const StringPiece16& utf16) {
}
std::string utf8;
+ // Make room for '\0' explicitly.
+ utf8.resize(utf8Length + 1);
+ utf16_to_utf8(utf16.data(), utf16.length(), &*utf8.begin(), utf8Length + 1);
utf8.resize(utf8Length);
- utf16_to_utf8(utf16.data(), utf16.length(), &*utf8.begin());
return utf8;
}
diff --git a/tools/split-select/Android.mk b/tools/split-select/Android.mk
index 239bed589412..863abae1e0fb 100644
--- a/tools/split-select/Android.mk
+++ b/tools/split-select/Android.mk
@@ -47,8 +47,8 @@ hostStaticLibs := \
libaapt \
libandroidfw \
libpng \
- liblog \
libutils \
+ liblog \
libcutils \
libexpat \
libziparchive-host \