@@ -198,5 +198,10 @@ _hs_text_decode_utf8(uint16_t *dest, size_t *destoff,
199 uint32_t codepoint;
199 uint32_t codepoint;
200 uint32_t state = UTF8_ACCEPT;
200 uint32_t state = UTF8_ACCEPT;
201− return _hs_text_decode_utf8_state(dest, destoff, src, srcend, &codepoint, &state);
201+ uint8_t const *ret = _hs_text_decode_utf8_state(dest, destoff, src, srcend,
202+ &codepoint, &state);
203+ /* Back up if we have an incomplete encoding */
204+ if (state != UTF8_ACCEPT && state != UTF8_REJECT)