]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mss1.c
paf: prevent invalid write
[ffmpeg] / libavcodec / mss1.c
index 6299037d01095dcf53749b29f860c837a1e21501..d2699a4477feddb1dba6c7f52aaaa8805f30eb8f 100644 (file)
@@ -499,7 +499,7 @@ static int decode_region_masked(MSS1Context *ctx, ArithCoder *acoder,
     dst  += x + y * stride;
     mask += x + y * mask_stride;
 
-    if (mask[0] != 0xFF)
+    if (mask[0] == 0xFF)
         dst[0] = decode_top_left_pixel(acoder, pctx);
     for (j = 0; j < height; j++) {
         for (i = 0; i < width; i++) {
@@ -575,7 +575,7 @@ static int decode_pivot(MSS1Context *ctx, ArithCoder *acoder, int base)
         val = arith_get_number(acoder, (base + 1) / 2 - 2) + 3;
     }
 
-    if (val == base) {
+    if ((unsigned)val >= base) {
         ctx->corrupted = 1;
         return 0;
     }
@@ -841,7 +841,7 @@ static av_cold int mss1_decode_end(AVCodecContext *avctx)
 AVCodec ff_mss1_decoder = {
     .name           = "mss1",
     .type           = AVMEDIA_TYPE_VIDEO,
-    .id             = CODEC_ID_MSS1,
+    .id             = AV_CODEC_ID_MSS1,
     .priv_data_size = sizeof(MSS1Context),
     .init           = mss1_decode_init,
     .close          = mss1_decode_end,