From 1070c17f8c8933b6b243dbcb5fefabb26e0afcba Mon Sep 17 00:00:00 2001 From: Michael Budde Date: Thu, 25 Jan 2018 21:14:10 +0100 Subject: Fix handling of edge cases in trim function Fixes #520 --- src/report.cc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src/report.cc') diff --git a/src/report.cc b/src/report.cc index 2f3cc302..856cb523 100644 --- a/src/report.cc +++ b/src/report.cc @@ -633,18 +633,15 @@ value_t report_t::fn_trim(call_scope_t& args) std::strcpy(buf.get(), temp.c_str()); const char * p = buf.get(); - while (*p && std::isspace(*p)) + const char * e = buf.get() + temp.length() - 1; + + while (p <= e && std::isspace(*p)) p++; - const char * e = buf.get() + temp.length() - 1; while (e > p && std::isspace(*e)) e--; - if (e == p) { - return string_value(empty_string); - } - else if (e < p) { - assert(false); + if (p > e) { return string_value(empty_string); } else { -- cgit v1.2.3