diff --git a/src/libespeak-ng/translate.c b/src/libespeak-ng/translate.c index 64531632..9b13876c 100644 --- a/src/libespeak-ng/translate.c +++ b/src/libespeak-ng/translate.c @@ -301,7 +301,13 @@ int utf8_in2(int *c, const char *buf, int backwards) c1 &= mask[n_bytes]; for (ix = 0; ix < n_bytes; ix++) + { + if (!*buf) + /* Oops, truncated */ + break; c1 = (c1 << 6) + (*buf++ & 0x3f); + } + n_bytes = ix; } *c = c1; return n_bytes+1;