daud: Don't write packets that are too large to have their size expressed in the...
authorAlex Converse <aconverse@google.com>
Fri, 8 Apr 2011 21:35:17 +0000 (14:35 -0700)
committerAlex Converse <alex.converse@gmail.com>
Sun, 10 Apr 2011 00:32:09 +0000 (17:32 -0700)
libavformat/daud.c

index ca9be279050b3a17e8614c39ec77f1703c79177a..1b3cfcf2d9426326ac202c3182c6529fcb024a31 100644 (file)
@@ -57,6 +57,11 @@ static int daud_write_header(struct AVFormatContext *s)
 
 static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt)
 {
+    if (pkt->size > 65535) {
+        av_log(s, AV_LOG_ERROR,
+               "Packet size too large for s302m. (%d > 65535)\n", pkt->size);
+        return -1;
+    }
     avio_wb16(s->pb, pkt->size);
     avio_wb16(s->pb, 0x8010); // unknown
     avio_write(s->pb, pkt->data, pkt->size);