auenc: do not write invalid file size
authorPaul B Mahol <onemda@gmail.com>
Fri, 28 Dec 2012 13:21:36 +0000 (13:21 +0000)
committerPaul B Mahol <onemda@gmail.com>
Fri, 28 Dec 2012 16:29:22 +0000 (16:29 +0000)
Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavformat/au.c

index 3648e89..4cf8966 100644 (file)
@@ -174,12 +174,10 @@ static int au_write_packet(AVFormatContext *s, AVPacket *pkt)
 static int au_write_trailer(AVFormatContext *s)
 {
     AVIOContext *pb = s->pb;
-    int64_t file_size;
-
-    if (s->pb->seekable) {
+    int64_t file_size = avio_tell(pb);
 
+    if (s->pb->seekable && file_size < INT32_MAX) {
         /* update file size */
-        file_size = avio_tell(pb);
         avio_seek(pb, 8, SEEK_SET);
         avio_wb32(pb, (uint32_t)(file_size - AU_HEADER_SIZE));
         avio_seek(pb, file_size, SEEK_SET);