summaryrefslogtreecommitdiffstats
path: root/include/utils/Unicode.h
diff options
context:
space:
mode:
authorSergio Giro <sgiro@google.com>2016-06-28 18:02:29 +0100
committergitbuildkicker <android-build@google.com>2016-08-16 15:52:46 -0700
commitf2059d3fd959ce6f0d8a106ad4483c733aab3f66 (patch)
tree3e75e4cf077370505a94b29b97696fc6aa8edb74 /include/utils/Unicode.h
parentae18eb014609948a40e22192b87b10efc680daa7 (diff)
downloadsystem_core-f2059d3fd959ce6f0d8a106ad4483c733aab3f66.zip
system_core-f2059d3fd959ce6f0d8a106ad4483c733aab3f66.tar.gz
system_core-f2059d3fd959ce6f0d8a106ad4483c733aab3f66.tar.bz2
libutils/Unicode.cpp: Correct length computation and add checks for utf16->utf8
Inconsistent behaviour between utf16_to_utf8 and utf16_to_utf8_length is causing a heap overflow. Correcting the length computation and adding bound checks to the conversion functions. Test: ran libutils_tests Bug: 29250543 Change-Id: I6115e3357141ed245c63c6eb25fc0fd0a9a7a2bb (cherry picked from commit c4966a363e46d2e1074d1a365e232af0dcedd6a1)
Diffstat (limited to 'include/utils/Unicode.h')
-rw-r--r--include/utils/Unicode.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/utils/Unicode.h b/include/utils/Unicode.h
index b76a5e2..4e17cc3 100644
--- a/include/utils/Unicode.h
+++ b/include/utils/Unicode.h
@@ -87,7 +87,7 @@ ssize_t utf32_to_utf8_length(const char32_t *src, size_t src_len);
* "dst" becomes \xE3\x81\x82\xE3\x81\x84
* (note that "dst" is NOT null-terminated, like strncpy)
*/
-void utf32_to_utf8(const char32_t* src, size_t src_len, char* dst);
+void utf32_to_utf8(const char32_t* src, size_t src_len, char* dst, size_t dst_len);
/**
* Returns the unicode value at "index".
@@ -109,7 +109,7 @@ ssize_t utf16_to_utf8_length(const char16_t *src, size_t src_len);
* enough to fit the UTF-16 as measured by utf16_to_utf8_length with an added
* NULL terminator.
*/
-void utf16_to_utf8(const char16_t* src, size_t src_len, char* dst);
+void utf16_to_utf8(const char16_t* src, size_t src_len, char* dst, size_t dst_len);
/**
* Returns the length of "src" when "src" is valid UTF-8 string.