You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avfilter: do not leak frame if ff_get_audio_buffer() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
		| @@ -192,8 +192,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) | ||||
|         return ff_filter_frame(ctx->outputs[0], frame); | ||||
|  | ||||
|     out_frame = ff_get_audio_buffer(inlink, frame->nb_samples); | ||||
|     if (!out_frame) | ||||
|     if (!out_frame) { | ||||
|         av_frame_free(&frame); | ||||
|         return AVERROR(ENOMEM); | ||||
|     } | ||||
|     av_frame_copy_props(out_frame, frame); | ||||
|  | ||||
|     for (i = 0; i < s->nb_delays; i++) { | ||||
|   | ||||
| @@ -279,8 +279,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) | ||||
|         out_frame = frame; | ||||
|     } else { | ||||
|         out_frame = ff_get_audio_buffer(inlink, frame->nb_samples); | ||||
|         if (!out_frame) | ||||
|         if (!out_frame) { | ||||
|             av_frame_free(&frame); | ||||
|             return AVERROR(ENOMEM); | ||||
|         } | ||||
|         av_frame_copy_props(out_frame, frame); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -401,8 +401,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) | ||||
|         out_buf = buf; | ||||
|     } else { | ||||
|         out_buf = ff_get_audio_buffer(inlink, nb_samples); | ||||
|         if (!out_buf) | ||||
|         if (!out_buf) { | ||||
|             av_frame_free(&buf); | ||||
|             return AVERROR(ENOMEM); | ||||
|         } | ||||
|         av_frame_copy_props(out_buf, buf); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -247,8 +247,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) | ||||
|         out_frame = frame; | ||||
|     } else { | ||||
|         out_frame = ff_get_audio_buffer(inlink, frame->nb_samples); | ||||
|         if (!out_frame) | ||||
|         if (!out_frame) { | ||||
|             av_frame_free(&frame); | ||||
|             return AVERROR(ENOMEM); | ||||
|         } | ||||
|         av_frame_copy_props(out_frame, frame); | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user