Check return value of scandir in icu.cpp
We could cause illegal memory access due to not checking the scanddir
return value.
Test: run linux-bionic dex2oat to build boot.oat
Bug: 119332362
Change-Id: Ic5824e0373b9b99d8f892b4fcf22e742c6f792da
diff --git a/libc/bionic/icu.cpp b/libc/bionic/icu.cpp
index c09c9ea..7c44f97 100644
--- a/libc/bionic/icu.cpp
+++ b/libc/bionic/icu.cpp
@@ -59,6 +59,10 @@
static bool __find_icu() {
dirent** namelist = nullptr;
int n = scandir("/system/usr/icu", &namelist, &__icu_dat_file_filter, alphasort);
+ if (n < 0) {
+ async_safe_write_log(ANDROID_LOG_ERROR, "bionic-icu", "couldn't find ICU folder");
+ return false;
+ }
int max_version = -1;
while (n--) {
// We prefer the latest version available.