From 269f5d902abfb16ee6aeac3817829fc7f2934a32 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 13 Nov 2013 18:48:38 +0100 Subject: [PATCH] avformat/aviobuf: return error from avio_put_str16le() for invalid input Found-by: Stefano Sabatini Signed-off-by: Michael Niedermayer --- libavformat/aviobuf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index d54564ab3d..8b4511d177 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -319,6 +319,7 @@ int avio_put_str16le(AVIOContext *s, const char *str) { const uint8_t *q = str; int ret = 0; + int err = 0; while (*q) { uint32_t ch; @@ -329,8 +330,11 @@ int avio_put_str16le(AVIOContext *s, const char *str) continue; invalid: av_log(s, AV_LOG_ERROR, "Invaid UTF8 sequence in avio_put_str16le\n"); + err = AVERROR(EINVAL); } avio_wl16(s, 0); + if (err) + return err; ret += 2; return ret; }