From f2e1dad58bb2a441e062420990e9a3cdaf963550 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Tue, 5 Sep 2023 21:13:38 -0400 Subject: ffmpeg_4: fix crash with clang 16 ffmpeg_4 crashes in `ff_seek_frame_binary` due to UB and optimizations clang 16 performs. This is fixed upstream in ffmpeg_5, but the patch can be made to apply to ffmpeg_4. --- pkgs/development/libraries/ffmpeg/4.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'pkgs/development/libraries/ffmpeg/4.nix') diff --git a/pkgs/development/libraries/ffmpeg/4.nix b/pkgs/development/libraries/ffmpeg/4.nix index 905e93de7a7..5e380a1fc08 100644 --- a/pkgs/development/libraries/ffmpeg/4.nix +++ b/pkgs/development/libraries/ffmpeg/4.nix @@ -7,5 +7,17 @@ import ./generic.nix rec { url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/031f1561cd286596cdb374da32f8aa816ce3b135"; hash = "sha256-mSnmAkoNikDpxcN+A/hpB7mUbbtcMvm4tG6gZFuroe8="; } + # The upstream patch isn’t for ffmpeg 4, but it will apply with a few tweaks. + # Fixes a crash when built with clang 16 due to UB in ff_seek_frame_binary. + { + name = "utils-fix_crash_in_ff_seek_frame_binary.patch"; + url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/ab792634197e364ca1bb194f9abe36836e42f12d"; + hash = "sha256-UxZ4VneZpw+Q/UwkEUDNdb2nOx1QnMrZ40UagspNTxI="; + postFetch = '' + substituteInPlace "$out" \ + --replace libavformat/seek.c libavformat/utils.c \ + --replace 'const AVInputFormat *const ' 'const AVInputFormat *' + ''; + } ]; } -- cgit 1.4.1