parser: fix string length calculation

Signed-off-by: Simon Rozman <simon.rozman@amebis.si>
This commit is contained in:
2026-01-20 09:51:31 +01:00
parent 0e0551db6b
commit e405e9a732

View File

@@ -832,7 +832,7 @@ namespace stdex
stdex_assert(text || start >= end);
size_t
m = m_str.size(),
n = std::min<size_t>(end - start, m);
n = start < end ? std::min<size_t>(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;