]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/sunrast.c
aac_adtstoasc_bsf: Check extradata memory allocation
[ffmpeg] / libavcodec / sunrast.c
index 281913fd581bfc10547054cce114e163d86d759e..ffa685c19f21ecff2ca0fdf8df722cb3b06ada88 100644 (file)
@@ -61,10 +61,6 @@ static int sunrast_decode_frame(AVCodecContext *avctx, void *data,
         av_log(avctx, AV_LOG_ERROR, "invalid (compression) type\n");
         return AVERROR_INVALIDDATA;
     }
-    if (av_image_check_size(w, h, 0, avctx)) {
-        av_log(avctx, AV_LOG_ERROR, "invalid image size\n");
-        return AVERROR_INVALIDDATA;
-    }
     if (maptype == RMT_RAW) {
         avpriv_request_sample(avctx, "Unknown colormap type");
         return AVERROR_PATCHWELCOME;
@@ -90,8 +86,10 @@ static int sunrast_decode_frame(AVCodecContext *avctx, void *data,
             return AVERROR_INVALIDDATA;
     }
 
-    if (w != avctx->width || h != avctx->height)
-        avcodec_set_dimensions(avctx, w, h);
+    ret = ff_set_dimensions(avctx, w, h);
+    if (ret < 0)
+        return ret;
+
     if ((ret = ff_get_buffer(avctx, p, 0)) < 0) {
         av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
         return ret;
@@ -170,9 +168,9 @@ static int sunrast_decode_frame(AVCodecContext *avctx, void *data,
 
 AVCodec ff_sunrast_decoder = {
     .name           = "sunrast",
+    .long_name      = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"),
     .type           = AVMEDIA_TYPE_VIDEO,
     .id             = AV_CODEC_ID_SUNRAST,
     .decode         = sunrast_decode_frame,
     .capabilities   = CODEC_CAP_DR1,
-    .long_name      = NULL_IF_CONFIG_SMALL("Sun Rasterfile image"),
 };