From e405e9a732055484b6dd51291660685d468b1992 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Tue, 20 Jan 2026 09:51:31 +0100 Subject: [PATCH] parser: fix string length calculation Signed-off-by: Simon Rozman --- include/stdex/parser.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/stdex/parser.hpp b/include/stdex/parser.hpp index 872464cd8..bbe780a36 100644 --- a/include/stdex/parser.hpp +++ b/include/stdex/parser.hpp @@ -832,7 +832,7 @@ namespace stdex stdex_assert(text || start >= end); size_t m = m_str.size(), - n = std::min(end - start, m); + n = start < end ? std::min(end - start, m) : 0; bool r = ((flags & match_case_insensitive) ? stdex::strnicmp(&text[start], n, m_str.data(), m, this->m_locale) : stdex::strncmp(&text[start], n, m_str.data(), m)) == 0; @@ -4527,6 +4527,7 @@ namespace stdex m_rparenthesis->invalidate(); if (m_plus_sign && m_plus_sign->match(text, this->interval.end, end, flags)) { + stdex_assert(text || m_plus_sign->interval.start >= m_plus_sign->interval.end); value.append(&text[m_plus_sign->interval.start], &text[m_plus_sign->interval.end]); safe_value_size = value.size(); this->interval.end = m_plus_sign->interval.end;