Backport upstream patch to fix C compatibility issues
Related to: <https://fedoraproject.org/wiki/Changes/PortingToModernC> <https://fedoraproject.org/wiki/Toolchain/PortingToModernC>
This commit is contained in:
parent
f3982b50da
commit
b05e4ff557
67
ffmpeg-c99.patch
Normal file
67
ffmpeg-c99.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
From 42982b5a5d461530a792e69b3e8abdd9d6d67052 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Frank Plowman <post@frankplowman.com>
|
||||||
|
Date: Fri, 22 Dec 2023 12:00:01 +0000
|
||||||
|
Subject: [PATCH] avformat/ffrtmpcrypt: Fix int-conversion warning
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
Content-type: text/plain
|
||||||
|
|
||||||
|
The gcrypt definition of `bn_new` used to use the return statement
|
||||||
|
on errors, with an AVERROR return value, regardless of the signature
|
||||||
|
of the function where the macro is used - it is called in
|
||||||
|
`dh_generate_key` and `ff_dh_init` which return pointers. As a result,
|
||||||
|
compiling with gcrypt and the ffrtmpcrypt protocol resulted in an
|
||||||
|
int-conversion warning. GCC 14 may upgrade these to errors [1].
|
||||||
|
|
||||||
|
This patch fixes the problem by changing the macro to remove `AVERROR`
|
||||||
|
and instead set `bn` to null if the allocation fails. This is the
|
||||||
|
behaviour of all the other `bn_new` implementations and so the result is
|
||||||
|
already checked at all the callsites. AFAICT, this should be the only
|
||||||
|
change needed to get ffmpeg off Fedora's naughty list of projects with
|
||||||
|
warnings which may be upgraded to errors in GCC 14 [2].
|
||||||
|
|
||||||
|
[1]: https://gcc.gnu.org/pipermail/gcc/2023-May/241264.html
|
||||||
|
[2]: https://www.mail-archive.com/devel@lists.fedoraproject.org/msg196024.html
|
||||||
|
|
||||||
|
Signed-off-by: Frank Plowman <post@frankplowman.com>
|
||||||
|
Signed-off-by: Martin Storsjö <martin@martin.st>
|
||||||
|
---
|
||||||
|
libavformat/rtmpdh.c | 21 ++++++++++++---------
|
||||||
|
1 file changed, 12 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libavformat/rtmpdh.c b/libavformat/rtmpdh.c
|
||||||
|
index 5ddae537a1..6a6c2ccd87 100644
|
||||||
|
--- a/libavformat/rtmpdh.c
|
||||||
|
+++ b/libavformat/rtmpdh.c
|
||||||
|
@@ -113,15 +113,18 @@ static int bn_modexp(FFBigNum bn, FFBigNum y, FFBigNum q, FFBigNum p)
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#elif CONFIG_GCRYPT
|
||||||
|
-#define bn_new(bn) \
|
||||||
|
- do { \
|
||||||
|
- if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) { \
|
||||||
|
- if (!gcry_check_version("1.5.4")) \
|
||||||
|
- return AVERROR(EINVAL); \
|
||||||
|
- gcry_control(GCRYCTL_DISABLE_SECMEM, 0); \
|
||||||
|
- gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); \
|
||||||
|
- } \
|
||||||
|
- bn = gcry_mpi_new(1); \
|
||||||
|
+#define bn_new(bn) \
|
||||||
|
+ do { \
|
||||||
|
+ if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) { \
|
||||||
|
+ if (gcry_check_version("1.5.4")) { \
|
||||||
|
+ gcry_control(GCRYCTL_DISABLE_SECMEM, 0); \
|
||||||
|
+ gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); \
|
||||||
|
+ } \
|
||||||
|
+ } \
|
||||||
|
+ if (gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) \
|
||||||
|
+ bn = gcry_mpi_new(1); \
|
||||||
|
+ else \
|
||||||
|
+ bn = NULL; \
|
||||||
|
} while (0)
|
||||||
|
#define bn_free(bn) gcry_mpi_release(bn)
|
||||||
|
#define bn_set_word(bn, w) gcry_mpi_set_ui(bn, w)
|
||||||
|
--
|
||||||
|
2.43.0
|
||||||
|
|
@ -92,7 +92,7 @@ Name: ffmpeg
|
|||||||
%global pkg_name %{name}%{?pkg_suffix}
|
%global pkg_name %{name}%{?pkg_suffix}
|
||||||
|
|
||||||
Version: 6.1.1
|
Version: 6.1.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: A complete solution to record, convert and stream audio and video
|
Summary: A complete solution to record, convert and stream audio and video
|
||||||
License: GPL-3.0-or-later
|
License: GPL-3.0-or-later
|
||||||
URL: https://ffmpeg.org/
|
URL: https://ffmpeg.org/
|
||||||
@ -119,6 +119,7 @@ Patch2: ffmpeg-allow-fdk-aac-free.patch
|
|||||||
# Drop openh264 runtime version checks
|
# Drop openh264 runtime version checks
|
||||||
# https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=10211
|
# https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=10211
|
||||||
Patch4: 0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch
|
Patch4: 0001-lavc-libopenh264-Drop-openh264-runtime-version-check.patch
|
||||||
|
Patch5: ffmpeg-c99.patch
|
||||||
|
|
||||||
# Set up dlopen for openh264
|
# Set up dlopen for openh264
|
||||||
Patch1001: ffmpeg-dlopen-openh264.patch
|
Patch1001: ffmpeg-dlopen-openh264.patch
|
||||||
@ -860,6 +861,9 @@ rm -rf %{buildroot}%{_datadir}/%{name}/examples
|
|||||||
%{_mandir}/man3/libswscale.3*
|
%{_mandir}/man3/libswscale.3*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 05 2024 Florian Weimer <fweimer@redhat.com> - 6.1.1-2
|
||||||
|
- Backport upstream patch to fix C compatibility issues
|
||||||
|
|
||||||
* Thu Jan 04 2024 Neal Gompa <ngompa@fedoraproject.org> - 6.1.1-1
|
* Thu Jan 04 2024 Neal Gompa <ngompa@fedoraproject.org> - 6.1.1-1
|
||||||
- Update to 6.1.1
|
- Update to 6.1.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user