diff --git a/src/cascadia/WindowsTerminal/WindowEmperor.cpp b/src/cascadia/WindowsTerminal/WindowEmperor.cpp index 07e96fcc2e..21dcc6d37e 100644 --- a/src/cascadia/WindowsTerminal/WindowEmperor.cpp +++ b/src/cascadia/WindowsTerminal/WindowEmperor.cpp @@ -97,9 +97,8 @@ static const uint8_t* deserializeString(const uint8_t* it, const uint8_t* end, w uint32_t len; it = deserializeUint32(it, end, len); - const auto bytes = static_cast(len) * sizeof(wchar_t); - - if (bytes == 0 || static_cast(end - it) < bytes) + size_t bytes{}; + if (!SUCCEEDED(SizeTMult(static_cast(len), sizeof(wchar_t), &bytes)) || bytes == 0 || static_cast(end - it) < bytes) { throw std::out_of_range("Not enough data for string content"); }