diff --git a/Src/SpriteFont.cpp b/Src/SpriteFont.cpp index da8d3d71..5af530f4 100644 --- a/Src/SpriteFont.cpp +++ b/Src/SpriteFont.cpp @@ -142,6 +142,18 @@ SpriteFont::Impl::Impl( auto textureStride = reader->Read(); auto textureRows = reader->Read(); + if (!textureWidth + || !textureHeight + || !textureStride + || !textureRows + || (textureWidth > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION) + || (textureHeight > D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION) + || LoaderHelpers::BitsPerPixel(textureFormat) == 0) + { + DebugTrace("ERROR: SpriteFont provided with an invalid .spritefont file\n"); + throw std::runtime_error("Invalid .spritefont file"); + } + const uint64_t dataSize = uint64_t(textureStride) * uint64_t(textureRows); if (dataSize > UINT32_MAX) {