Jelajahi Sumber

string_util: Prevent out of bounds access in u16string_view buffer

Morph 4 tahun lalu
induk
melakukan
3ffff78a27
1 mengubah file dengan 2 tambahan dan 2 penghapusan
  1. 2 2
      src/common/string_util.cpp

+ 2 - 2
src/common/string_util.cpp

@@ -191,9 +191,9 @@ std::string StringFromFixedZeroTerminatedBuffer(const char* buffer, std::size_t
 std::u16string UTF16StringFromFixedZeroTerminatedBuffer(std::u16string_view buffer,
 std::u16string UTF16StringFromFixedZeroTerminatedBuffer(std::u16string_view buffer,
                                                         std::size_t max_len) {
                                                         std::size_t max_len) {
     std::size_t len = 0;
     std::size_t len = 0;
-    while (len < max_len && buffer[len] != '\0')
+    while (len < buffer.length() && len < max_len && buffer[len] != '\0') {
         ++len;
         ++len;
-
+    }
     return std::u16string(buffer.begin(), buffer.begin() + len);
     return std::u16string(buffer.begin(), buffer.begin() + len);
 }
 }