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.