riffdec: Explicitly null-terminate array to work around VC++ bug
authorBruce Dawson <brucedawson@chromium.org>
Thu, 28 Jan 2016 21:06:07 +0000 (13:06 -0800)
committerHendrik Leppkes <h.leppkes@gmail.com>
Mon, 1 Feb 2016 09:41:56 +0000 (10:41 +0100)
Due to this bug in VC++ 2015 Update 1:
https://connect.microsoft.com/VisualStudio/feedback/details/2291638

the 'key' array in ff_read_riff_info() ends up being not null
terminated which led to failures in a Chromium unit tests. Update 2
should have a fix, but until then it is important to avoid problems.

libavformat/riffdec.c

index aa637b6..d7b81a0 100644 (file)
@@ -279,6 +279,9 @@ int ff_read_riff_info(AVFormatContext *s, int64_t size)
         }
 
         AV_WL32(key, chunk_code);
+        // Work around VC++ 2015 Update 1 code-gen bug:
+        // https://connect.microsoft.com/VisualStudio/feedback/details/2291638
+        key[4] = 0;
 
         if (avio_read(pb, value, chunk_size) != chunk_size) {
             av_log(s, AV_LOG_WARNING,