diff --git a/libavformat/au.c b/libavformat/au.c index 3648e89df3..4cf896688b 100644 --- a/libavformat/au.c +++ b/libavformat/au.c @@ -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);