From 75f9c5a0946f818130e5717b9d06b0d2e0952d2f Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sat, 2 Jan 2016 19:34:58 +0100 Subject: [PATCH] lib-sieve: Fixed an off-by-one error in the previously committed string trimming functions. --- src/lib-sieve/util/strtrim.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib-sieve/util/strtrim.c b/src/lib-sieve/util/strtrim.c index 7f03295a4..989410d52 100644 --- a/src/lib-sieve/util/strtrim.c +++ b/src/lib-sieve/util/strtrim.c @@ -24,17 +24,19 @@ static void ph_str_trim_parse(const char *str, if ((sides & STR_TRIM_LEFT) != 0) { while (p < pend && strchr(chars, *p) != NULL) p++; + if (p == pend) + return; } begin = p; - p = pend - 1; + p = pend; if ((sides & STR_TRIM_RIGHT) != 0) { - while (p > begin && strchr(chars, *p) != NULL) + while (p > begin && strchr(chars, *(p-1)) != NULL) p--; + if (p == begin) + return; } - if (p <= begin) - return; - end = p + 1; + end = p; *begin_r = begin; *end_r = end; -- GitLab