import gstreamer1-plugins-bad-free-1.16.1-1.el8

This commit is contained in:
CentOS Sources 2020-04-28 04:51:03 -04:00 committed by Andrew Lukoshko
parent 5402d5077d
commit 8a06378390
6 changed files with 20 additions and 135 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/gst-plugins-bad-free-1.14.0.tar.xz
SOURCES/gst-plugins-bad-free-1.16.1.tar.xz

View File

@ -1 +1 @@
6882db901c299b654342558e3d7c0384097eeb91 SOURCES/gst-plugins-bad-free-1.14.0.tar.xz
318b749af5a289650e380cbabc0293e422b9a3ba SOURCES/gst-plugins-bad-free-1.16.1.tar.xz

View File

@ -1,32 +0,0 @@
From cb1b143b5b847e2320a58a6eb7af132eba685c9c Mon Sep 17 00:00:00 2001
From: Jun Xie <jun.xie@samsung.com>
Date: Tue, 27 Feb 2018 10:51:07 +0800
Subject: [PATCH] curlhttpsrc: deadlock in multi-instance scenario
Fixed queue iterator issue and set context state to
GSTCURL_MULTI_LOOP_STATE_RUNNING in case other
instance are in running state.
https://bugzilla.gnome.org/show_bug.cgi?id=793863
---
ext/curl/gstcurlhttpsrc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/ext/curl/gstcurlhttpsrc.c b/ext/curl/gstcurlhttpsrc.c
index a47508e62..e60ccf531 100644
--- a/ext/curl/gstcurlhttpsrc.c
+++ b/ext/curl/gstcurlhttpsrc.c
@@ -1668,8 +1668,10 @@ gst_curl_http_src_curl_multi_loop (gpointer thread_data)
g_mutex_unlock (&qelement->p->buffer_mutex);
gst_curl_http_src_remove_queue_item (&context->queue, qelement->p);
}
+ qelement = qelement->next;
}
context->request_removal_element = NULL;
+ context->state = GSTCURL_MULTI_LOOP_STATE_RUNNING;
g_mutex_unlock (&context->mutex);
} else {
GSTCURL_WARNING_PRINT ("Curl Loop State was invalid or unsupported");
--
2.17.1

View File

@ -1,34 +0,0 @@
From e098ad49187296273742dcd0c9c98eca1b351108 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 16 Aug 2018 11:20:54 +0200
Subject: [PATCH 1/2] rfbdecoder: don't free decoder data
The decoder data is freed when we read more data.
---
gst/librfb/rfbdecoder.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/gst/librfb/rfbdecoder.c b/gst/librfb/rfbdecoder.c
index b3b01f5a7..fa763313a 100644
--- a/gst/librfb/rfbdecoder.c
+++ b/gst/librfb/rfbdecoder.c
@@ -983,7 +983,6 @@ rfb_decoder_corre_encoding (RfbDecoder * decoder, gint start_x, gint start_y,
number_of_rectangles = RFB_GET_UINT32 (decoder->data);
color = GUINT32_SWAP_LE_BE ((RFB_GET_UINT32 (decoder->data + 4)));
- g_free (decoder->data);
GST_DEBUG ("number of rectangles :%d", number_of_rectangles);
@@ -1003,8 +1002,6 @@ rfb_decoder_corre_encoding (RfbDecoder * decoder, gint start_x, gint start_y,
/* draw the rectangle in the foreground */
rfb_decoder_fill_rectangle (decoder, start_x + x, start_y + y, w, h, color);
-
- g_free (decoder->data);
}
return TRUE;
--
2.17.1

View File

@ -1,46 +0,0 @@
From cb16d0b239ef3173bf356a6fe86f30403f285941 Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Thu, 16 Aug 2018 11:42:25 +0200
Subject: [PATCH 2/2] curlhhtpsrc: avoid invalid memory references
gst_curl_http_src_remove_queue_item() can free qelement and then
we get an invalid memory reference when we do qelement->next a
couple of lines below. Take the next pointer earlier so that we can
safely free.
---
ext/curl/gstcurlhttpsrc.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/ext/curl/gstcurlhttpsrc.c b/ext/curl/gstcurlhttpsrc.c
index e60ccf531..c1a0bcf5c 100644
--- a/ext/curl/gstcurlhttpsrc.c
+++ b/ext/curl/gstcurlhttpsrc.c
@@ -1509,7 +1509,7 @@ static void
gst_curl_http_src_curl_multi_loop (gpointer thread_data)
{
GstCurlHttpSrcMultiTaskContext *context;
- GstCurlHttpSrcQueueElement *qelement;
+ GstCurlHttpSrcQueueElement *qelement, *qnext;
int i, still_running;
gboolean cond = FALSE;
CURLMsg *curl_message;
@@ -1655,6 +1655,7 @@ gst_curl_http_src_curl_multi_loop (gpointer thread_data)
} else if (context->state == GSTCURL_MULTI_LOOP_STATE_REQUEST_REMOVAL) {
qelement = context->queue;
while (qelement != NULL) {
+ qnext = qelement->next;
if (qelement->p == context->request_removal_element) {
g_mutex_lock (&qelement->p->buffer_mutex);
curl_multi_remove_handle (context->multi_handle,
@@ -1668,7 +1669,7 @@ gst_curl_http_src_curl_multi_loop (gpointer thread_data)
g_mutex_unlock (&qelement->p->buffer_mutex);
gst_curl_http_src_remove_queue_item (&context->queue, qelement->p);
}
- qelement = qelement->next;
+ qelement = qnext;
}
context->request_removal_element = NULL;
context->state = GSTCURL_MULTI_LOOP_STATE_RUNNING;
--
2.17.1

View File

@ -13,8 +13,8 @@
#global shortcommit %(c=%{gitcommit}; echo ${c:0:5})
Name: gstreamer1-plugins-bad-free
Version: 1.14.0
Release: 5%{?gitcommit:.git%{shortcommit}}%{?dist}
Version: 1.16.1
Release: 1%{?gitcommit:.git%{shortcommit}}%{?dist}
Summary: GStreamer streaming media framework "bad" plugins
License: LGPLv2+ and LGPLv2
@ -32,9 +32,6 @@ Source0: gst-plugins-bad-free-%{version}.tar.xz
Source1: gst-p-bad-cleanup.sh
#upstream patches
Patch0: 0001-rfbdecoder-don-t-free-decoder-data.patch
Patch1: 0001-curlhttpsrc-deadlock-in-multi-instance-scenario.patch
Patch2: 0002-curlhhtpsrc-avoid-invalid-memory-references.patch
BuildRequires: gstreamer1-devel >= %{version}
BuildRequires: gstreamer1-plugins-base-devel >= %{version}
@ -53,7 +50,6 @@ BuildRequires: ladspa-devel
BuildRequires: lcms2-devel
BuildRequires: libdvdnav-devel
BuildRequires: libexif-devel
BuildRequires: libiptcdata-devel
BuildRequires: libmpcdec-devel
BuildRequires: librsvg2-devel
BuildRequires: libsndfile-devel
@ -69,7 +65,7 @@ BuildRequires: opus-devel
BuildRequires: nettle-devel
BuildRequires: libgcrypt-devel
%if 0%{?fedora} || 0%{?rhel} > 7
BuildRequires: libwayland-client-devel
BuildRequires: wayland-devel
%endif
BuildRequires: gnutls-devel
BuildRequires: libsrtp-devel
@ -188,14 +184,11 @@ aren't tested well enough, or the code is not of good enough quality.
%prep
%setup -q -n gst-plugins-bad-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%build
%configure --disable-silent-rules --disable-fatal-warnings \
--with-package-name="Fedora GStreamer-plugins-bad package" \
--with-package-origin="http://download.fedoraproject.org" \
--with-package-name="GStreamer-plugins-bad package" \
--with-package-origin="http://www.redhat.com" \
%{!?with_extras:--disable-fbdev --disable-decklink --disable-linsys} \
--enable-debug --disable-static --enable-gtk-doc --enable-experimental \
--disable-dts --disable-faac --disable-faad --disable-nas \
@ -283,13 +276,13 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -fv {} ';'
%{_libdir}/libgstadaptivedemux-%{majorminor}.so.*
%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so.*
%{_libdir}/libgstbadaudio-%{majorminor}.so.*
%{_libdir}/libgstbadvideo-%{majorminor}.so.*
%{_libdir}/libgstcodecparsers-%{majorminor}.so.*
%{_libdir}/libgstinsertbin-%{majorminor}.so.*
%{_libdir}/libgstisoff-%{majorminor}.so.*
%{_libdir}/libgstmpegts-%{majorminor}.so.*
%{_libdir}/libgstplayer-%{majorminor}.so.*
%{_libdir}/libgstphotography-%{majorminor}.so.*
%{_libdir}/libgstsctp-%{majorminor}.so.*
%{_libdir}/libgsturidownloader-%{majorminor}.so.*
%{_libdir}/libgstwebrtc-%{majorminor}.so.*
%if 0%{?fedora} || 0%{?rhel} > 7
@ -316,7 +309,6 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -fv {} ';'
%{_libdir}/gstreamer-%{majorminor}/libgstbayer.so
%{_libdir}/gstreamer-%{majorminor}/libgstcamerabin.so
%{_libdir}/gstreamer-%{majorminor}/libgstcoloreffects.so
%{_libdir}/gstreamer-%{majorminor}/libgstcompositor.so
%{_libdir}/gstreamer-%{majorminor}/libgstdashdemux.so
%{_libdir}/gstreamer-%{majorminor}/libgstfaceoverlay.so
%if %{with extras}
@ -360,7 +352,6 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -fv {} ';'
%{_libdir}/gstreamer-%{majorminor}/libgstsmooth.so
%{_libdir}/gstreamer-%{majorminor}/libgstsmoothstreaming.so
%{_libdir}/gstreamer-%{majorminor}/libgstspeed.so
%{_libdir}/gstreamer-%{majorminor}/libgststereo.so
%{_libdir}/gstreamer-%{majorminor}/libgstsubenc.so
%{_libdir}/gstreamer-%{majorminor}/libgsttimecode.so
%{_libdir}/gstreamer-%{majorminor}/libgstuvch264.so
@ -374,19 +365,17 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -fv {} ';'
# System (Linux) specific plugins
%{_libdir}/gstreamer-%{majorminor}/libgstdvb.so
%{_libdir}/gstreamer-%{majorminor}/libgstvcdsrc.so
# Plugins with external dependencies
%{_libdir}/gstreamer-%{majorminor}/libgstbluez.so
%{_libdir}/gstreamer-%{majorminor}/libgstbz2.so
%{_libdir}/gstreamer-%{majorminor}/libgstclosedcaption.so
%{_libdir}/gstreamer-%{majorminor}/libgstcolormanagement.so
%{_libdir}/gstreamer-%{majorminor}/libgstdtls.so
%{_libdir}/gstreamer-%{majorminor}/libgsthls.so
%{_libdir}/gstreamer-%{majorminor}/libgstgsm.so
%{_libdir}/gstreamer-%{majorminor}/libgstkms.so
%{_libdir}/gstreamer-%{majorminor}/libgstladspa.so
%{_libdir}/gstreamer-%{majorminor}/libgstmusepack.so
%{_libdir}/gstreamer-%{majorminor}/libgstopenglmixers.so
%{_libdir}/gstreamer-%{majorminor}/libgstopusparse.so
%{_libdir}/gstreamer-%{majorminor}/libgstsndfile.so
%{_libdir}/gstreamer-%{majorminor}/libgstsoundtouch.so
@ -446,13 +435,13 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -fv {} ';'
%{_libdir}/libgstadaptivedemux-%{majorminor}.so
%{_libdir}/libgstbasecamerabinsrc-%{majorminor}.so
%{_libdir}/libgstbadaudio-%{majorminor}.so
%{_libdir}/libgstbadvideo-%{majorminor}.so
%{_libdir}/libgstcodecparsers-%{majorminor}.so
%{_libdir}/libgstinsertbin-%{majorminor}.so
%{_libdir}/libgstisoff-%{majorminor}.so
%{_libdir}/libgstmpegts-%{majorminor}.so
%{_libdir}/libgstplayer-%{majorminor}.so
%{_libdir}/libgstphotography-%{majorminor}.so
%{_libdir}/libgstsctp-%{majorminor}.so
%{_libdir}/libgsturidownloader-%{majorminor}.so
%{_libdir}/libgstwebrtc-%{majorminor}.so
%if 0%{?fedora} || 0%{?rhel} > 7
@ -467,22 +456,30 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -fv {} ';'
%{_includedir}/gstreamer-%{majorminor}/gst/isoff/
%{_includedir}/gstreamer-%{majorminor}/gst/mpegts
%{_includedir}/gstreamer-%{majorminor}/gst/player
%{_includedir}/gstreamer-%{majorminor}/gst/sctp
%{_includedir}/gstreamer-%{majorminor}/gst/uridownloader
%{_includedir}/gstreamer-%{majorminor}/gst/video
%{_includedir}/gstreamer-%{majorminor}/gst/webrtc/
# pkg-config files
%{_libdir}/pkgconfig/gstreamer-bad-audio-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-bad-video-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-codecparsers-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-insertbin-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-mpegts-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-player-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-plugins-bad-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-sctp-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-webrtc-%{majorminor}.pc
%changelog
* Mon Nov 18 2019 Wim Taymans <wtaymans@redhat.com> - 1.16.1-1
- Update to 1.16.1
- Remove upstreamed patches
- Remove dependency on removed package
- Add sctp and closedcaption plugins
- The vcdsrc plugin was removed
- Resolves: rhbz#1756299
* Thu Aug 16 2018 Wim Taymans <wtaymans@redhat.com> - 1.14.0-5
- Fixes for problems found by covscan
- Resolves: rhbz#1602534