From 9187ae7605de2bd260d60c2c6dcc296c8f364e02 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 18 May 2021 02:46:34 -0400 Subject: [PATCH] import dleyna-server-0.6.0-3.el8 --- .dleyna-server.metadata | 1 + .gitignore | 1 + ...crash-when-getting-server-properties.patch | 66 ++++++++ SPECS/dleyna-server.spec | 141 ++++++++++++++++++ 4 files changed, 209 insertions(+) create mode 100644 .dleyna-server.metadata create mode 100644 .gitignore create mode 100644 SOURCES/dleyna-server-Avoid-possible-crash-when-getting-server-properties.patch create mode 100644 SPECS/dleyna-server.spec diff --git a/.dleyna-server.metadata b/.dleyna-server.metadata new file mode 100644 index 0000000..f42be5f --- /dev/null +++ b/.dleyna-server.metadata @@ -0,0 +1 @@ +dea39f6891c70d0861ed0f6b83be7dab455cd174 SOURCES/dleyna-server-0.6.0.tar_2.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..75f2179 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/dleyna-server-0.6.0.tar_2.gz diff --git a/SOURCES/dleyna-server-Avoid-possible-crash-when-getting-server-properties.patch b/SOURCES/dleyna-server-Avoid-possible-crash-when-getting-server-properties.patch new file mode 100644 index 0000000..1dc0de1 --- /dev/null +++ b/SOURCES/dleyna-server-Avoid-possible-crash-when-getting-server-properties.patch @@ -0,0 +1,66 @@ +From 3f62e9fbd3de11df52184ca8dfcabfb7d1c0fdeb Mon Sep 17 00:00:00 2001 +From: Robert Tiemann +Date: Fri, 17 May 2019 12:43:04 +0200 +Subject: [PATCH] Avoid possible crash when getting server properties. + +The crash occurs when calling dls_device_get_all_props() for a content +directory server that we have not yet subscribed to (that is, +prv_cds_subscribed() returns FALSE in +prv_get_system_update_id_for_props()). This crash is caused by an +invalid GVariantBuilder passed to g_variant_builder_end() in +prv_get_sleeping_for_props(), leading to a NULL result pointer being +passed to dls_async_task_complete(). A GVariant is attempted to be +constructed from this NULL pointer in dls_task_complete(). + +Here is the call chain that leads to the crash: + + dls_device_get_all_props() + prv_get_system_update_id_for_props() + gupnp_service_proxy_begin_action("GetSystemUpdateID") -> prv_system_update_id_for_props_cb() + prv_system_update_id_for_props_cb() + prv_get_sr_token_for_props() + prv_get_sleeping_for_props() + dls_async_task_complete() + cb_data->cb() -> prv_async_task_complete() + prv_async_task_complete() + dls_task_complete() + g_variant_new() + +The crash was most likely observed when a device running Plex Media +Server was present on the network. + +This commit moves the call of g_variant_builder_end() in +prv_system_update_id_for_props_cb() (which invalidates the +GVariantBuilder used later in prv_get_sleeping_for_props()) to the +error handling branch. This leaves the GVariantBuilder alone and +allows prv_get_sr_token_for_props() or one of its descendants to call +g_variant_builder_end() and complete the task. +--- + libdleyna/server/device.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/libdleyna/server/device.c b/libdleyna/server/device.c +index d77dfbc2725b..8777da0ea2db 100644 +--- a/libdleyna/server/device.c ++++ b/libdleyna/server/device.c +@@ -2256,15 +2256,14 @@ static void prv_system_update_id_for_props_cb(GUPnPServiceProxy *proxy, + DLS_SYSTEM_UPDATE_VAR, + g_variant_new_uint32(id)); + +- cb_data->task.result = g_variant_ref_sink(g_variant_builder_end( +- cb_task_data->vb)); +- + on_complete: + + if (!cb_data->error) + prv_get_sr_token_for_props(proxy, cb_data->task.target.device, + cb_data); + else { ++ cb_data->task.result = g_variant_ref_sink(g_variant_builder_end( ++ cb_task_data->vb)); + (void) g_idle_add(dls_async_task_complete, cb_data); + g_cancellable_disconnect(cb_data->cancellable, + cb_data->cancel_id); +-- +2.28.0 + diff --git a/SPECS/dleyna-server.spec b/SPECS/dleyna-server.spec new file mode 100644 index 0000000..3894d8d --- /dev/null +++ b/SPECS/dleyna-server.spec @@ -0,0 +1,141 @@ +%global api 1.0 + +Name: dleyna-server +Version: 0.6.0 +Release: 3%{?dist} +Summary: Service for interacting with Digital Media Servers + +License: LGPLv2 +URL: https://01.org/dleyna/ +Source0: https://01.org/sites/default/files/downloads/dleyna/%{name}-%{version}.tar_2.gz + +# https://bugzilla.redhat.com/show_bug.cgi?id=1464902 +Patch0: dleyna-server-Avoid-possible-crash-when-getting-server-properties.patch + +BuildRequires: autoconf automake libtool +BuildRequires: pkgconfig(dleyna-core-1.0) >= 0.5.0 +BuildRequires: pkgconfig(gio-2.0) >= 2.28 +BuildRequires: pkgconfig(glib-2.0) >= 2.28 +BuildRequires: pkgconfig(gobject-2.0) >= 2.28 +BuildRequires: pkgconfig(gssdp-1.0) >= 0.13.2 +BuildRequires: pkgconfig(gupnp-1.0) >= 0.20.3 +BuildRequires: pkgconfig(gupnp-av-1.0) >= 0.11.5 +BuildRequires: pkgconfig(gupnp-dlna-2.0) >= 0.9.4 +BuildRequires: pkgconfig(libsoup-2.4) >= 2.28.2 +Requires: dbus +Requires: dleyna-connector-dbus%{?_isa} + +%description +D-Bus service for clients to discover and manipulate DLNA Digital Media +Servers (DMSes). + + +%prep +%setup -q +%patch0 -p1 + + +%build +autoreconf -fiv +%configure \ + --disable-silent-rules \ + --disable-static + +# Omit unused direct shared library dependencies. +sed --in-place --expression 's! -shared ! -Wl,--as-needed\0!g' libtool + +%make_build + + +%install +%make_install +find $RPM_BUILD_ROOT -name '*.la' -delete -print + +# We don't need a -devel package because only the daemon is supposed to be +# using the library. +rm -rf $RPM_BUILD_ROOT/%{_includedir} +rm -f $RPM_BUILD_ROOT/%{_libdir}/%{name}/libdleyna-server-%{api}.so +rm -rf $RPM_BUILD_ROOT/%{_libdir}/pkgconfig + + +%files +%license COPYING +%doc AUTHORS +%doc ChangeLog +%doc README +%{_datadir}/dbus-1/services/com.intel.%{name}.service + +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/libdleyna-server-%{api}.so.* + +%{_libexecdir}/%{name}-service +%config(noreplace) %{_sysconfdir}/%{name}-service.conf + + +%changelog +* Fri Dec 11 2020 Debarshi Ray - 0.6.0-3 +- Avoid crash when getting server properties +Resolves: #1464902 + +* Wed Feb 07 2018 Fedora Release Engineering - 0.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Oct 06 2017 Debarshi Ray - 0.6.0-1 +- Update to 0.6.0 + +* Thu Oct 05 2017 Debarshi Ray - 0.5.0-9 +- Use arch-specific Requires on dleyna-connector-dbus + +* Wed Aug 02 2017 Fedora Release Engineering - 0.5.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.5.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Mar 03 2017 Debarshi Ray - 0.5.0-6 +- Fix build failure due to missing header + +* Fri Feb 10 2017 Fedora Release Engineering - 0.5.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Sep 16 2016 Debarshi Ray - 0.5.0-4 +- Fix crash due to double-free when destroying the same dls_upnp_t or + dls_manager_t twice (RH #1251365) +- Use make_build and make_install macros +- Update minimum required versions; use pkgconfig(...) for BRs +- Miscellaneous clean-ups + +* Wed Feb 03 2016 Fedora Release Engineering - 0.5.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 0.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 12 2015 Debarshi Ray - 0.5.0-1 +- Update to 0.5.0 + +* Mon May 11 2015 Nils Philippsen - 0.4.0-8 +- rebuild for new dleyna-core + +* Tue Feb 24 2015 Bastien Nocera 0.4.0-7 +- Fix warning on totem startup + +* Sat Aug 16 2014 Fedora Release Engineering - 0.4.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 0.4.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Feb 24 2014 Debarshi Ray - 0.4.0-4 +- Pass -v to autoreconf and -print to find + +* Fri Feb 21 2014 Debarshi Ray - 0.4.0-3 +- Fix the Source0 as per + https://fedoraproject.org/wiki/Packaging:SourceURL#Github + +* Tue Feb 11 2014 Debarshi Ray - 0.4.0-2 +- Mention the full commit hash corresponding to the release as per + https://fedoraproject.org/wiki/Packaging:SourceURL#Github + +* Wed Jan 15 2014 Bastien Nocera - 0.4.0-1 +- Initial version