From 1363667ca878d2c609ed2c7fe4fbe0c4a5eb63de Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 11 Jun 2026 20:48:38 +0400 Subject: [PATCH] Fix possible crash in formula parsing. --- .../SourceFiles/iv/markdown/iv_markdown_microtex.cpp | 9 +++++++++ Telegram/ThirdParty/MicroTeX | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/iv/markdown/iv_markdown_microtex.cpp b/Telegram/SourceFiles/iv/markdown/iv_markdown_microtex.cpp index 6a37503c05..454cc35423 100644 --- a/Telegram/SourceFiles/iv/markdown/iv_markdown_microtex.cpp +++ b/Telegram/SourceFiles/iv/markdown/iv_markdown_microtex.cpp @@ -293,6 +293,15 @@ void FinalizeFailure(MeasuredFormula *result) { result.measured.error = u"invalid-render-size"_q; return result; } + // In partial mode MicroTeX swallows parse errors inside arguments + // (e.g. of \displaystyle) and renders an EmptyAtom, which measures + // 1x1 scaled units. Fall back to the source text instead of + // painting an invisible formula. + const auto scaledSize = result.measured.exact.scaledSize; + if (scaledSize.width() <= 1 && scaledSize.height() <= 1) { + result.measured.error = u"empty-render"_q; + return result; + } if (logicalSize.width() > request.renderWidthCap || logicalSize.height() > request.renderHeightCap) { result.measured.error = u"logical-size-cap-exceeded"_q; diff --git a/Telegram/ThirdParty/MicroTeX b/Telegram/ThirdParty/MicroTeX index f62284178d..43904b5cba 160000 --- a/Telegram/ThirdParty/MicroTeX +++ b/Telegram/ThirdParty/MicroTeX @@ -1 +1 @@ -Subproject commit f62284178d523f1d31fcd47ca26a4e656bd7628f +Subproject commit 43904b5cbae8154f041209eea6d13f7c8c4ffd6e