diff --git a/st.c b/st.c index ce42395..46eecbd 100644 --- a/st.c +++ b/st.c @@ -313,8 +313,8 @@ utf8decode(const char *c, Rune *u, size_t clen) } if (j < len) return 0; - *u = udecoded; - utf8validate(u, len); + *u = (!BETWEEN(udecoded, utfmin[len], utfmax[len]) || BETWEEN(udecoded, 0xD800, 0xDFFF)) + ? UTF_INVALID : udecoded; return len; }