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