From 131fd7a286db71eee54b9d350d25155d1ab07954 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 19 Jun 2008 16:52:31 +0000 Subject: [PATCH] Fix a few places that were non-multibyte-safe in tsearch configuration file parsing. Per bug #4253 from Giorgio Valoti. --- src/backend/tsearch/spell.c | 10 +++++----- src/backend/tsearch/ts_utils.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/backend/tsearch/spell.c b/src/backend/tsearch/spell.c index daa3abf7b2..583296078c 100644 --- a/src/backend/tsearch/spell.c +++ b/src/backend/tsearch/spell.c @@ -509,7 +509,7 @@ static void addFlagValue(IspellDict *Conf, char *s, uint32 val) { while (*s && t_isspace(s)) - s++; + s += pg_mblen(s); if (!*s) ereport(ERROR, @@ -595,7 +595,7 @@ NIImportOOAffixes(IspellDict *Conf, const char *filename) char *s = recoded + strlen("FLAG"); while (*s && t_isspace(s)) - s++; + s += pg_mblen(s); if (*s && STRNCMP(s, "default") != 0) ereport(ERROR, @@ -729,9 +729,9 @@ NIImportAffixes(IspellDict *Conf, const char *filename) s = recoded + (s - pstr); /* we need non-lowercased * string */ while (*s && !t_isspace(s)) - s++; + s += pg_mblen(s); while (*s && t_isspace(s)) - s++; + s += pg_mblen(s); if (*s && pg_mblen(s) == 1) { @@ -762,7 +762,7 @@ NIImportAffixes(IspellDict *Conf, const char *filename) flagflags = 0; while (*s && t_isspace(s)) - s++; + s += pg_mblen(s); oldformat = true; /* allow only single-encoded flags */ diff --git a/src/backend/tsearch/ts_utils.c b/src/backend/tsearch/ts_utils.c index 4cc53b2483..2c3d9cb3f2 100644 --- a/src/backend/tsearch/ts_utils.c +++ b/src/backend/tsearch/ts_utils.c @@ -97,7 +97,7 @@ readstoplist(const char *fname, StopList *s, char *(*wordop) (const char *)) /* Trim trailing space */ while (*pbuf && !t_isspace(pbuf)) - pbuf++; + pbuf += pg_mblen(pbuf); *pbuf = '\0'; /* Skip empty lines */ -- 2.39.5