From d2fa1c3596a5b7cd1d14a853a94794cc72e17648 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Tue, 24 May 2011 23:15:20 +0300 Subject: [PATCH] * mu-str.c: fix out-of-bounds issue with mu_str_ascii_xapian_escape_in_place --- src/mu-str.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mu-str.c b/src/mu-str.c index 14ab3a83..35560b1e 100644 --- a/src/mu-str.c +++ b/src/mu-str.c @@ -367,6 +367,7 @@ mu_str_ascii_xapian_escape_in_place (char *query) replace_dot = (g_strstr_len(query, -1, "@") != NULL); for (cur = query; *cur; ++cur) { + *cur = tolower(*cur); switch (*cur) { @@ -375,9 +376,10 @@ mu_str_ascii_xapian_escape_in_place (char *query) *cur = '_'; break; case '.': { /* don't replace a final cur */ - if (cur[1]== ' ' || cur[1]=='\t' || cur[1] == '\0' || - cur[1]== '.') - ++cur; + if (cur[1]== ' ' || cur[1]=='\t' || cur[1]== '.') + ++cur; + else if (cur[1] == '\0') + break; else *cur = '_'; break;