avio_put_str16le: Print error message in case of invalid UTF8 input
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 13 Nov 2013 17:39:17 +0000 (18:39 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 13 Nov 2013 18:09:04 +0000 (19:09 +0100)
Found-by: Stefano Sabatini
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/aviobuf.c

index dc0ed71..d54564a 100644 (file)
@@ -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;