Просмотр исходного кода

Clamp string reads to buffer size

Chloe Marcec 5 лет назад
Родитель
Сommit
df42100320
1 измененных файлов с 5 добавлено и 3 удалено
  1. 5 3
      src/core/hle/service/lm/lm.cpp

+ 5 - 3
src/core/hle/service/lm/lm.cpp

@@ -162,9 +162,11 @@ private:
         if (length == 0) {
         if (length == 0) {
             return std::nullopt;
             return std::nullopt;
         }
         }
-        std::string output(length, '\0');
-        std::memcpy(output.data(), data.data() + offset, length);
-        offset += length;
+        const auto length_to_read = std::min(length, data.size() - offset);
+
+        std::string output(length_to_read, '\0');
+        std::memcpy(output.data(), data.data() + offset, length_to_read);
+        offset += length_to_read;
         return output;
         return output;
     }
     }