From 2dbfc69e1af2affc27d067c9bc6b732b3d626957 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 19 2015 15:57:40 +0000 Subject: import dleyna-connector-dbus-0.2.0-1.el7 --- diff --git a/.dleyna-connector-dbus.metadata b/.dleyna-connector-dbus.metadata new file mode 100644 index 0000000..5672534 --- /dev/null +++ b/.dleyna-connector-dbus.metadata @@ -0,0 +1 @@ +755eb35ee2cc12ef6b429b9294a3f685473f21fc SOURCES/dleyna-connector-dbus-0.2.0.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..681ca42 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/dleyna-connector-dbus-0.2.0.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/0001-Connector-Don-t-crash-when-trying-to-unwatch-non-exi.patch b/SOURCES/0001-Connector-Don-t-crash-when-trying-to-unwatch-non-exi.patch new file mode 100644 index 0000000..db22c7e --- /dev/null +++ b/SOURCES/0001-Connector-Don-t-crash-when-trying-to-unwatch-non-exi.patch @@ -0,0 +1,87 @@ +From c06ce2520886d42e3489c6a4abf5735e6bb080b9 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray +Date: Mon, 19 Jan 2015 19:24:05 +0100 +Subject: [PATCH] [Connector] Don't crash when trying to unwatch non-existent + client + +$ gdbus call \ + --session \ + --dest com.intel.dleyna-renderer \ + --object-path /com/intel/dLeynaRenderer \ + --method com.intel.dLeynaRenderer.Manager.Release + +If a service is spawned as a result of the above command, then it will +lead to a crash with this backtrace: + + (client_name=0x7f7c94009750 ":1.603") at src/connector-dbus.c:271 + (conn=, sender=0x7f7c94009750 ":1.603", + object=, interface=, + method=, parameters=, + invocation=0x2360e00) at server.c:780 + at gdbusconnection.c:4884 + at gmain.c:3111 + (context=context@entry=0x2342ea0) at gmain.c:3710 + block=block@entry=1, dispatch=dispatch@entry=1, + self=) at gmain.c:3781 + at gmain.c:3975 + (server=, control_point=, + user_data=0x0) at libdleyna/core/main-loop.c:155 + argv=) at daemon.c:93 + +This is because g_hash_table_lookup returns NULL which we try to +dereference to get the client_id. + +Instead of our hand-spun solution for storing unsigned integers in a +GHashTable, let's use standard GLib mechanisms for doing that. We +avoid this problem and reduce a g_new/g_free pair as a bonus. +--- + src/connector-dbus.c | 11 ++++------- + 1 file changed, 4 insertions(+), 7 deletions(-) + +diff --git a/src/connector-dbus.c b/src/connector-dbus.c +index 0e16239..83774c0 100644 +--- a/src/connector-dbus.c ++++ b/src/connector-dbus.c +@@ -173,7 +173,7 @@ static gboolean prv_connector_initialize(const gchar *server_info, + g_context.objects = g_hash_table_new_full(g_direct_hash, g_direct_equal, + g_free, prv_free_dbus_object); + g_context.clients = g_hash_table_new_full(g_str_hash, g_str_equal, +- g_free, g_free); ++ g_free, NULL); + + g_context.root_node_info = g_dbus_node_info_new_for_xml(root_info, + NULL); +@@ -268,8 +268,8 @@ static void prv_connector_unwatch_client(const gchar *client_name) + + DLEYNA_LOG_DEBUG("Enter"); + +- client_id = *(guint *)g_hash_table_lookup(g_context.clients, +- client_name); ++ client_id = GPOINTER_TO_UINT(g_hash_table_lookup(g_context.clients, ++ client_name)); + (void) g_hash_table_remove(g_context.clients, client_name); + + g_bus_unwatch_name(client_id); +@@ -287,7 +287,6 @@ static void prv_lost_client(GDBusConnection *connection, const gchar *name, + static gboolean prv_connector_watch_client(const gchar *client_name) + { + guint watch_id; +- guint *client_id; + gboolean added = TRUE; + + DLEYNA_LOG_DEBUG("Enter"); +@@ -301,10 +300,8 @@ static gboolean prv_connector_watch_client(const gchar *client_name) + G_BUS_NAME_WATCHER_FLAGS_NONE, + NULL, prv_lost_client, NULL, + NULL); +- client_id = g_new(guint, 1); +- *client_id = watch_id; + g_hash_table_insert(g_context.clients, g_strdup(client_name), +- client_id); ++ GUINT_TO_POINTER(watch_id)); + + out: + DLEYNA_LOG_DEBUG("Exit"); +-- +2.1.0 + diff --git a/SPECS/dleyna-connector-dbus.spec b/SPECS/dleyna-connector-dbus.spec new file mode 100644 index 0000000..971ae2e --- /dev/null +++ b/SPECS/dleyna-connector-dbus.spec @@ -0,0 +1,66 @@ +%global api 1.0 +%global __provides_exclude_from ^%{_libdir}/dleyna-%{api}/connectors/.*\\.so$ + +Name: dleyna-connector-dbus +Version: 0.2.0 +Release: 1%{?dist} +Summary: D-Bus connector for dLeyna services + +License: LGPLv2 +URL: https://01.org/dleyna/ +Source0: https://01.org/dleyna/sites/default/files/downloads/%{name}-%{version}.tar.gz +Patch0: 0001-Connector-Don-t-crash-when-trying-to-unwatch-non-exi.patch + +BuildRequires: dbus-devel +BuildRequires: dleyna-core-devel +BuildRequires: glib2-devel >= 2.28 +BuildRequires: pkgconfig autoconf automake libtool + +%description +D-Bus connector for dLeyna services. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%setup -q +%patch0 -p1 + + +%build +autoreconf -f -i +%configure \ + --disable-silent-rules \ + --disable-static + +make %{?_smp_mflags} + + +%install +make install INSTALL="%{__install} -p" DESTDIR=$RPM_BUILD_ROOT +find $RPM_BUILD_ROOT -name '*.la' -delete + + +%files +%doc AUTHORS +%doc COPYING +%doc ChangeLog +%doc README +%dir %{_libdir}/dleyna-%{api} +%dir %{_libdir}/dleyna-%{api}/connectors +%{_libdir}/dleyna-%{api}/connectors/libdleyna-connector-dbus.so + +%files devel +%{_libdir}/pkgconfig/%{name}-%{api}.pc + + +%changelog +* Mon Jun 01 2015 Debarshi Ray - 0.2.0-1 +- Initial RHEL import +Resolves: #1221261