OSDN Git Service

Fix integer overflow in utf{16,32}_to_utf8_length
authorAdam Vartanian <flooey@google.com>
Mon, 14 Aug 2017 14:51:29 +0000 (15:51 +0100)
committerandroid-build-team Robot <android-build-team-robot@google.com>
Thu, 28 Sep 2017 17:15:58 +0000 (17:15 +0000)
commitb0998ba6e62eac2eebdfdbf72426669b49305bd4
tree1e8da54315549db74906f281e202941cf1af0a4d
parent3d6a43155c702bce0e7e2a93a67247b5ce3946a5
Fix integer overflow in utf{16,32}_to_utf8_length

Without an explicit check, the return value can wrap around and return
a value that is far too small to hold the data from the resulting
conversion.

No CTS test is provided because it would need to allocate at least
SSIZE_MAX / 2 bytes of UTF-16 data, which is unreasonable on 64-bit
devices.

Bug: 37723026
Test: run cts -p android.security
Change-Id: Ie2606b92b9eab1acfe8ce4663b43b81156a4cad7
Merged-In: I56ba5e31657633b7f33685dd8839d4b3b998e586
(cherry picked from commit f0a43dede921178b3048d40c330a8b664e94cca3)
libutils/Unicode.cpp