From d0efde07da335310b2e9da3bb9a690c2123fbc5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Sun, 11 Mar 2018 22:02:30 +0100 Subject: Reset parsing state after mbrtowc(3) failure The standard says "if an encoding error occurs ... the conversion state is unspecified". --- text-regex-tre.c | 1 + 1 file changed, 1 insertion(+) (limited to 'text-regex-tre.c') diff --git a/text-regex-tre.c b/text-regex-tre.c index 3f02dcd..cbfc4ee 100644 --- a/text-regex-tre.c +++ b/text-regex-tre.c @@ -37,6 +37,7 @@ static int str_next_char(tre_char_t *c, unsigned int *pos_add, void *context) { size_t len = rem < plen ? rem : plen; size_t wclen = mbrtowc(c, it->text, len, &ps); if (wclen == (size_t)-1 && errno == EILSEQ) { + ps = (mbstate_t){0}; *c = L'\0'; text_iterator_codepoint_next(it, NULL); break; -- cgit v1.2.3