avcodec/vp9: Fix stack-buffer overflow with VP9 VDPAU available
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>
This commit is contained in:
		
							parent
							
								
									8227f60fee
								
							
						
					
					
						commit
						ddee53e268
					
				@ -207,9 +207,6 @@ static int update_size(AVCodecContext *avctx, int w, int h)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        switch (s->pix_fmt) {
 | 
					        switch (s->pix_fmt) {
 | 
				
			||||||
        case AV_PIX_FMT_YUV420P:
 | 
					        case AV_PIX_FMT_YUV420P:
 | 
				
			||||||
#if CONFIG_VP9_VDPAU_HWACCEL
 | 
					 | 
				
			||||||
            *fmtp++ = AV_PIX_FMT_VDPAU;
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
        case AV_PIX_FMT_YUV420P10:
 | 
					        case AV_PIX_FMT_YUV420P10:
 | 
				
			||||||
#if CONFIG_VP9_DXVA2_HWACCEL
 | 
					#if CONFIG_VP9_DXVA2_HWACCEL
 | 
				
			||||||
            *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
 | 
					            *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user