]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/bintext.c
indeo3: Fix null ptr dereference
[ffmpeg] / libavcodec / bintext.c
index 6b284c511498a496600aaa8d3c092dc90ca54f0e..df37feea1298738a5603fe0511b90f7daafef1e5 100644 (file)
@@ -22,7 +22,7 @@
  */
 
 /**
- * @file libavcodec/xbin.c
+ * @file
  * Binary text decoder
  * eXtended BINary text (XBIN) decoder
  * iCEDraw File decoder
@@ -61,7 +61,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
 
     if ((s->flags & BINTEXT_PALETTE)) {
         for (i = 0; i < 16; i++) {
-            s->palette[i] = 0xFF000000 | (AV_RB24(p) << 2);
+            s->palette[i] = 0xFF000000 | (AV_RB24(p) << 2) | ((AV_RB24(p) >> 4) & 0x30303);
             p += 3;
         }
     } else {
@@ -74,7 +74,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
     } else {
         switch(s->font_height) {
         default:
-            av_log(avctx, AV_LOG_WARNING, "font height %i not support\n", s->font_height);
+            av_log(avctx, AV_LOG_WARNING, "font height %i not supported\n", s->font_height);
             s->font_height = 8;
         case 8:
             s->font = ff_cga_font;
@@ -131,6 +131,7 @@ static int decode_frame(AVCodecContext *avctx,
     int buf_size = avpkt->size;
     const uint8_t *buf_end = buf+buf_size;
 
+    s->x = s->y = 0;
     s->frame.buffer_hints = FF_BUFFER_HINTS_VALID |
                             FF_BUFFER_HINTS_PRESERVE |
                             FF_BUFFER_HINTS_REUSABLE;