Fix strstr16.

strcmp needs a limit, otherwise it will compare the null terminator
with the next character in the haystack, which results in the compare
failing for all searches except where the needle is found at the very
end.

Bug: 28663748
Change-Id: I1939dc4037c2f2a75d617943b063d2d38a8c5e3a
diff --git a/libutils/Unicode.cpp b/libutils/Unicode.cpp
index ade896a..f1f8bc9 100644
--- a/libutils/Unicode.cpp
+++ b/libutils/Unicode.cpp
@@ -292,6 +292,7 @@
 char16_t* strstr16(const char16_t* src, const char16_t* target)
 {
     const char16_t needle = *target++;
+    const size_t target_len = strlen16(target);
     if (needle != '\0') {
       do {
         do {
@@ -299,7 +300,7 @@
             return nullptr;
           }
         } while (*src++ != needle);
-      } while (strcmp16(src, target) != 0);
+      } while (strncmp16(src, target, target_len) != 0);
       src--;
     }