You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avformat/hls_sample_encryption: Always free AC3HeaderInfo on error
The code currently presumes that a return value of AVERROR(ENOMEM) implies that ac3hdr could not be allocated, so it need not be freed. Yet any avpriv_ac3_parse_header() might allocate more than the AC3HeaderInfo internally (it doesn't currently), so simply free it unconditionally. Fixes Coverity issues #1492870 and #1492868. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
		| @@ -105,8 +105,7 @@ int ff_hls_senc_parse_audio_setup_info(AVStream *st, HLSAudioSetupInfo *info) | ||||
|  | ||||
|         ret = avpriv_ac3_parse_header(&ac3hdr, info->setup_data, info->setup_data_length); | ||||
|         if (ret < 0) { | ||||
|             if (ret != AVERROR(ENOMEM)) | ||||
|                 av_free(ac3hdr); | ||||
|             av_free(ac3hdr); | ||||
|             return ret; | ||||
|         } | ||||
|  | ||||
| @@ -317,8 +316,7 @@ static int get_next_ac3_eac3_sync_frame(CodecParserContext *ctx, AudioFrame *fra | ||||
|  | ||||
|     ret = avpriv_ac3_parse_header(&hdr, frame->data, ctx->buf_end - frame->data); | ||||
|     if (ret < 0) { | ||||
|         if (ret != AVERROR(ENOMEM)) | ||||
|             av_free(hdr); | ||||
|         av_free(hdr); | ||||
|         return ret; | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user