avcodec/mjpegdec: Fix memleak upon init failure
This affected all decoders that used ff_mjpeg_decode_init() as init function; and it also affected decoders that open jpeg decoders via ff_codec_open2_recursive() as well as MxPEG. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> (cherry picked from commit f3e645a7967d64df8a19c4e0eea93f17937913fb)
This commit is contained in:
		
							parent
							
								
									4ec5d6896d
								
							
						
					
					
						commit
						eda1ed6f91
					
				| @ -553,5 +553,5 @@ AVCodec ff_jpegls_decoder = { | ||||
|     .close          = ff_mjpeg_decode_end, | ||||
|     .decode         = ff_mjpeg_decode_frame, | ||||
|     .capabilities   = AV_CODEC_CAP_DR1, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, | ||||
| }; | ||||
|  | ||||
| @ -163,5 +163,5 @@ AVCodec ff_mjpegb_decoder = { | ||||
|     .decode         = mjpegb_decode_frame, | ||||
|     .capabilities   = AV_CODEC_CAP_DR1, | ||||
|     .max_lowres     = 3, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, | ||||
| }; | ||||
|  | ||||
| @ -2876,7 +2876,7 @@ AVCodec ff_mjpeg_decoder = { | ||||
|     .max_lowres     = 3, | ||||
|     .priv_class     = &mjpegdec_class, | ||||
|     .profiles       = NULL_IF_CONFIG_SMALL(ff_mjpeg_profiles), | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP | | ||||
|                       FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM, | ||||
|     .hw_configs     = (const AVCodecHWConfigInternal*[]) { | ||||
| #if CONFIG_MJPEG_NVDEC_HWACCEL | ||||
| @ -2902,6 +2902,6 @@ AVCodec ff_thp_decoder = { | ||||
|     .flush          = decode_flush, | ||||
|     .capabilities   = AV_CODEC_CAP_DR1, | ||||
|     .max_lowres     = 3, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, | ||||
| }; | ||||
| #endif | ||||
|  | ||||
| @ -106,7 +106,7 @@ AVCodec ff_sp5x_decoder = { | ||||
|     .decode         = sp5x_decode_frame, | ||||
|     .capabilities   = AV_CODEC_CAP_DR1, | ||||
|     .max_lowres     = 3, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, | ||||
| }; | ||||
| #endif | ||||
| #if CONFIG_AMV_DECODER | ||||
| @ -121,6 +121,6 @@ AVCodec ff_amv_decoder = { | ||||
|     .decode         = sp5x_decode_frame, | ||||
|     .max_lowres     = 3, | ||||
|     .capabilities   = AV_CODEC_CAP_DR1, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE, | ||||
|     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, | ||||
| }; | ||||
| #endif | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user