]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/vp9: Fix stack-buffer overflow with VP9 VDPAU available
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sat, 10 Oct 2020 23:29:57 +0000 (01:29 +0200)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 11 Oct 2020 00:11:32 +0000 (02:11 +0200)
ccca62ef991f0a47dfa30c3e822d91294b8afe4c added new VP9 VDPAU profiles
and as a consequence AV_PIX_FMT_VDPAU can now be twice in the list of
pixel formats used for format negotiation by ff_thread_get_format(); yet
there is only one entry in said list reserved for VDPAU, leading to a
stack-buffer overflow. This commit fixes this by making sure that
AV_PIX_FMT_VDPAU will not occur twice in said list.

Fixes Coverity ticket 1468046.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/vp9.c

index 8b89fd68e2467565b52c811e4701e9347cc75ffd..294059f863f67c82c65eb044bb31eea05495968d 100644 (file)
@@ -207,9 +207,6 @@ static int update_size(AVCodecContext *avctx, int w, int h)
 
         switch (s->pix_fmt) {
         case AV_PIX_FMT_YUV420P:
-#if CONFIG_VP9_VDPAU_HWACCEL
-            *fmtp++ = AV_PIX_FMT_VDPAU;
-#endif
         case AV_PIX_FMT_YUV420P10:
 #if CONFIG_VP9_DXVA2_HWACCEL
             *fmtp++ = AV_PIX_FMT_DXVA2_VLD;