]> git.pld-linux.org Git - packages/transcode.git/blob - transcode-1.1.7-preset-free.patch
- rediff patches
[packages/transcode.git] / transcode-1.1.7-preset-free.patch
1 Fix invalid free when preset file not found
2 https://bugs.gentoo.org/show_bug.cgi?id=322945
3 Author: Brennan Shacklett
4
5 diff -urNp -x '*.orig' transcode-1.1.7.org/export/export_ffmpeg.c transcode-1.1.7/export/export_ffmpeg.c
6 --- transcode-1.1.7.org/export/export_ffmpeg.c  2022-04-04 12:28:07.839750405 +0200
7 +++ transcode-1.1.7/export/export_ffmpeg.c      2022-04-04 12:28:08.059752149 +0200
8 @@ -322,7 +322,7 @@ static int opt_preset(const char *opt, c
9      }
10  
11      if(!f){
12 -        fprintf(stderr, "File for preset '%s' not found\n", arg);
13 +        tc_log_error(MOD_NAME, "File for preset '%s' not found", arg);
14          av_exit(1);
15      }
16  
17 @@ -1208,7 +1208,7 @@ MOD_init
18         /* FIXME: transcode itself contains "broken ffmpeg default settings", thus we need to override them! */
19         if (lavc_param_video_preset && strcmp(lavc_param_video_preset, "none")) {
20                 avcodec_opts[AVMEDIA_TYPE_VIDEO] = lavc_venc_context;
21 -               video_codec_name = ffmpeg_codec_name(codec->name);
22 +               video_codec_name = av_strdup(ffmpeg_codec_name(codec->name));
23  
24                 const char *preset_start = lavc_param_video_preset;
25                 while (preset_start) {
26 @@ -1226,6 +1226,8 @@ MOD_init
27                         if (opt_preset("vpre", preset_name) != 0) {
28                                 tc_log_warn(MOD_NAME, "Parsing ffmpeg preset '%s' failed", preset_name);
29                         }
30 +      av_free(video_codec_name);
31 +      video_codec_name = NULL;
32                         if (verbose) {
33                                 int i;
34                                 tc_log_info(MOD_NAME, "After parsing preset '%s', %i options are overridden:", preset_name, opt_name_count);
This page took 0.106815 seconds and 3 git commands to generate.