Pull some patches from upstream that fix serveral leaks.

This commit is contained in:
Brian Pepple 2013-03-27 12:20:18 -04:00
parent 2c6eb39849
commit 4414a33fff
6 changed files with 136 additions and 1 deletions

View File

@ -0,0 +1,26 @@
From 45b9a3fe974a72140cdfda21c0e98f16dd8cc4e6 Mon Sep 17 00:00:00 2001
From: Olivier Crête <olivier.crete@collabora.com>
Date: Thu, 28 Feb 2013 21:52:33 +0000
Subject: shm: Fix funnelpad leak
---
diff --git a/transmitters/shm/fs-shm-transmitter.c b/transmitters/shm/fs-shm-transmitter.c
index b548608..49cfdd9 100644
--- a/transmitters/shm/fs-shm-transmitter.c
+++ b/transmitters/shm/fs-shm-transmitter.c
@@ -695,6 +695,13 @@ fs_shm_transmitter_check_shm_src (FsShmTransmitter *self, ShmSrc *shm,
gst_pad_remove_probe (shm->funnelpad, shm->buffer_probe);
shm->buffer_probe = 0;
+ if (shm->funnelpad) {
+ gst_element_release_request_pad (self->priv->funnels[shm->component],
+ shm->funnelpad);
+ gst_object_unref (shm->funnelpad);
+ }
+ shm->funnelpad = NULL;
+
if (shm->src)
{
gst_element_set_locked_state (shm->src, TRUE);
--
cgit v0.9.0.3

View File

@ -0,0 +1,21 @@
From 1f9fcbdf164612d0d630bb3c903e7e70fe61693f Mon Sep 17 00:00:00 2001
From: Olivier Crête <olivier.crete@collabora.com>
Date: Thu, 28 Feb 2013 21:54:32 +0000
Subject: shm: Fix candidate leak
---
diff --git a/transmitters/shm/fs-shm-stream-transmitter.c b/transmitters/shm/fs-shm-stream-transmitter.c
index abc43b2..fd2192e 100644
--- a/transmitters/shm/fs-shm-stream-transmitter.c
+++ b/transmitters/shm/fs-shm-stream-transmitter.c
@@ -281,6 +281,8 @@ fs_shm_stream_transmitter_finalize (GObject *object)
{
FsShmStreamTransmitter *self = FS_SHM_STREAM_TRANSMITTER (object);
+ fs_candidate_list_destroy (self->priv->preferred_local_candidates);
+
g_free (self->priv->shm_src);
g_free (self->priv->shm_sink);
g_mutex_clear (&self->priv->mutex);
--
cgit v0.9.0.3

View File

@ -0,0 +1,22 @@
From bc8fd0624d7da549d1d76d02488d3fbe8e444b95 Mon Sep 17 00:00:00 2001
From: Olivier Crête <olivier.crete@collabora.com>
Date: Thu, 21 Mar 2013 21:47:04 +0000
Subject: fs-rtp-substream: Don't leak caps on error
Based on patch from Havard Graff
---
diff --git a/gst/fsrtpconference/fs-rtp-substream.c b/gst/fsrtpconference/fs-rtp-substream.c
index c6768cf..e015675 100644
--- a/gst/fsrtpconference/fs-rtp-substream.c
+++ b/gst/fsrtpconference/fs-rtp-substream.c
@@ -1332,6 +1332,8 @@ _rtpbin_pad_blocked_callback (GstPad *pad, GstPadProbeInfo *info,
else
fs_session_emit_error (FS_SESSION (substream->priv->session),
FS_ERROR_CONSTRUCTION, error->message);
+ if (caps)
+ gst_caps_unref (caps);
goto out;
}
--
cgit v0.9.0.3

View File

@ -0,0 +1,31 @@
From eca3548baca2ba4fbed2addf960342d846936b39 Mon Sep 17 00:00:00 2001
From: Havard Graff <havard.graff@gmail.com>
Date: Thu, 21 Mar 2013 21:49:18 +0000
Subject: rtp-stream: plug session leak
---
diff --git a/gst/fsrtpconference/fs-rtp-stream.c b/gst/fsrtpconference/fs-rtp-stream.c
index 88cd558..1274459 100644
--- a/gst/fsrtpconference/fs-rtp-stream.c
+++ b/gst/fsrtpconference/fs-rtp-stream.c
@@ -1083,6 +1083,7 @@ fs_rtp_stream_set_transmitter (FsStream *stream,
if (self->priv->stream_transmitter)
{
FS_RTP_SESSION_UNLOCK (session);
+ g_object_unref (session);
return FALSE;
}
FS_RTP_SESSION_UNLOCK (session);
@@ -1149,8 +1150,10 @@ fs_rtp_stream_set_transmitter (FsStream *stream,
self->priv->stream_transmitter = NULL;
FS_RTP_SESSION_UNLOCK (session);
g_object_unref (st);
+ g_object_unref (session);
return FALSE;
}
+ g_object_unref (session);
return TRUE;
}
--
cgit v0.9.0.3

View File

@ -0,0 +1,22 @@
From fdf07e579b90760f1e2cdcd1a4c4a9b3476009af Mon Sep 17 00:00:00 2001
From: Havard Graff <havard.graff@gmail.com>
Date: Thu, 21 Mar 2013 21:50:51 +0000
Subject: fs-codec: plug memory leak
encoding_name is already g_strdup'ed in codec_new
---
diff --git a/farstream/fs-codec.c b/farstream/fs-codec.c
index c21a085..43704ce 100644
--- a/farstream/fs-codec.c
+++ b/farstream/fs-codec.c
@@ -182,8 +182,6 @@ fs_codec_copy (const FsCodec * codec)
copy->channels = codec->channels;
copy->minimum_reporting_interval = codec->minimum_reporting_interval;
- copy->encoding_name = g_strdup (codec->encoding_name);
-
for (lp = codec->optional_params; lp; lp = g_list_next (lp))
{
FsCodecParameter *param_copy;
--
cgit v0.9.0.3

View File

@ -4,13 +4,18 @@
Name: %{far}02
Version: 0.2.2
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Libraries for videoconferencing
# Package is LGPLv2 except for a few files in /common/coverage/
License: LGPLv2+ and GPLv2+
URL: http://www.freedesktop.org/wiki/Software/Farstream
Source0: http://freedesktop.org/software/%{far}/releases/%{far}/%{far}-%{version}.tar.gz
Patch0: 0001-shm_fix_funnelpad_leak.patch
Patch1: 0002-shm_fix_candidate_leak.patch
Patch2: 0003-fs-rtp-substream-fix_leak_caps_on_error.patch
Patch3: 0004-rtp-stream_plug_session_leak.patch
Patch4: 0005-fs-codec-plug_memory_leak.patch
BuildRequires: libnice-devel >= 0.1.3
BuildRequires: gstreamer1-devel >= %{gst_ver}
@ -44,6 +49,11 @@ developing applications that use %{name}.
%prep
%setup -q -n %{far}-%{version}
%patch0 -p1 -b .funnelpad
%patch1 -p1 -b .candidate
%patch2 -p1 -b .substream
%patch3 -p1 -b .rtp-stream
%patch4 -p1 -b .fs-codec
%build
@ -97,6 +107,9 @@ find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
%changelog
* Wed Mar 27 2013 Brian Pepple <bpepple@fedoraproject.org> - 0.2.2-3
- Pull some patches from upstream that fix serveral leaks.
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild