diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index dc0ed717fd..d54564ab3d 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -324,8 +324,11 @@ int avio_put_str16le(AVIOContext *s, const char *str) uint32_t ch; uint16_t tmp; - GET_UTF8(ch, *q++, break;) + GET_UTF8(ch, *q++, goto invalid;) PUT_UTF16(ch, tmp, avio_wl16(s, tmp); ret += 2;) + continue; +invalid: + av_log(s, AV_LOG_ERROR, "Invaid UTF8 sequence in avio_put_str16le\n"); } avio_wl16(s, 0); ret += 2;