Date: Tuesday, June 30, 2015 @ 06:09:15
  Author: heftig
Revision: 241413

archrelease: copy trunk to extra-i686, extra-x86_64

Added:
  dleyna-connector-dbus/repos/extra-i686/PKGBUILD
    (from rev 241412, dleyna-connector-dbus/trunk/PKGBUILD)
  dleyna-connector-dbus/repos/extra-i686/crash.patch
    (from rev 241412, dleyna-connector-dbus/trunk/crash.patch)
  dleyna-connector-dbus/repos/extra-x86_64/PKGBUILD
    (from rev 241412, dleyna-connector-dbus/trunk/PKGBUILD)
  dleyna-connector-dbus/repos/extra-x86_64/crash.patch
    (from rev 241412, dleyna-connector-dbus/trunk/crash.patch)
Deleted:
  dleyna-connector-dbus/repos/extra-i686/PKGBUILD
  dleyna-connector-dbus/repos/extra-x86_64/PKGBUILD

--------------------------+
 /PKGBUILD                |   74 ++++++++++++++++++++++++++++++++++++++++
 extra-i686/PKGBUILD      |   30 ----------------
 extra-i686/crash.patch   |   83 +++++++++++++++++++++++++++++++++++++++++++++
 extra-x86_64/PKGBUILD    |   30 ----------------
 extra-x86_64/crash.patch |   83 +++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 240 insertions(+), 60 deletions(-)

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD 2015-06-30 04:08:03 UTC (rev 241412)
+++ extra-i686/PKGBUILD 2015-06-30 04:09:15 UTC (rev 241413)
@@ -1,30 +0,0 @@
-# $Id$
-# Maintainer: Jan Alexander Steffens (heftig) <[email protected]>
-
-pkgname=dleyna-connector-dbus
-pkgver=0.2.0
-pkgrel=1
-pkgdesc="Provides a D-Bus API for the dLeyna services"
-arch=(i686 x86_64)
-url="http://01.org/dleyna";
-license=(LGPL2.1)
-depends=(dleyna-core dbus)
-source=(https://01.org/sites/default/files/downloads/dleyna/$pkgname-$pkgver.tar.gz)
-sha256sums=('e791511206761282a658bb8253de076dcb1f8c8fbdc81219efe5ffe80cb2bea5')
-
-build() {
-  cd $pkgname-$pkgver
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-    --disable-static
-  make
-}
-
-check() {
-  cd $pkgname-$pkgver
-  make check
-}
-
-package() {
-  cd $pkgname-$pkgver
-  make DESTDIR="$pkgdir" install
-}

Copied: dleyna-connector-dbus/repos/extra-i686/PKGBUILD (from rev 241412, 
dleyna-connector-dbus/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD                         (rev 0)
+++ extra-i686/PKGBUILD 2015-06-30 04:09:15 UTC (rev 241413)
@@ -0,0 +1,37 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <[email protected]>
+
+pkgname=dleyna-connector-dbus
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="Provides a D-Bus API for the dLeyna services"
+arch=(i686 x86_64)
+url="http://01.org/dleyna";
+license=(LGPL2.1)
+depends=(dleyna-core dbus)
+source=(https://01.org/sites/default/files/downloads/dleyna/$pkgname-$pkgver.tar.gz
+        crash.patch)
+sha256sums=('e791511206761282a658bb8253de076dcb1f8c8fbdc81219efe5ffe80cb2bea5'
+            'cf44774ba06160dbd6c8aa5f1a3caae0f054f44c3ae4613a8d17aa8464ee9195')
+
+prepare() {
+  cd $pkgname-$pkgver
+  patch -Np1 -i ../crash.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+    --disable-static
+  make
+}
+
+check() {
+  cd $pkgname-$pkgver
+  make check
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}

Copied: dleyna-connector-dbus/repos/extra-i686/crash.patch (from rev 241412, 
dleyna-connector-dbus/trunk/crash.patch)
===================================================================
--- extra-i686/crash.patch                              (rev 0)
+++ extra-i686/crash.patch      2015-06-30 04:09:15 UTC (rev 241413)
@@ -0,0 +1,83 @@
+From 00870c6f44b68582c98cb36e73297f014c269f95 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <[email protected]>
+Date: Mon, 19 Jan 2015 19:24:05 +0100
+Subject: [PATCH] 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=<optimized out>, sender=0x7f7c94009750 ":1.603",
+    object=<optimized out>, interface=<optimized out>,
+    method=<optimized out>, parameters=<optimized out>,
+    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=<optimized out>) at gmain.c:3781
+    at gmain.c:3975
+    (server=<optimized out>, control_point=<optimized out>,
+    user_data=0x0) at libdleyna/core/main-loop.c:155
+    argv=<optimized out>) 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");

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD       2015-06-30 04:08:03 UTC (rev 241412)
+++ extra-x86_64/PKGBUILD       2015-06-30 04:09:15 UTC (rev 241413)
@@ -1,30 +0,0 @@
-# $Id$
-# Maintainer: Jan Alexander Steffens (heftig) <[email protected]>
-
-pkgname=dleyna-connector-dbus
-pkgver=0.2.0
-pkgrel=1
-pkgdesc="Provides a D-Bus API for the dLeyna services"
-arch=(i686 x86_64)
-url="http://01.org/dleyna";
-license=(LGPL2.1)
-depends=(dleyna-core dbus)
-source=(https://01.org/sites/default/files/downloads/dleyna/$pkgname-$pkgver.tar.gz)
-sha256sums=('e791511206761282a658bb8253de076dcb1f8c8fbdc81219efe5ffe80cb2bea5')
-
-build() {
-  cd $pkgname-$pkgver
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-    --disable-static
-  make
-}
-
-check() {
-  cd $pkgname-$pkgver
-  make check
-}
-
-package() {
-  cd $pkgname-$pkgver
-  make DESTDIR="$pkgdir" install
-}

Copied: dleyna-connector-dbus/repos/extra-x86_64/PKGBUILD (from rev 241412, 
dleyna-connector-dbus/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD                               (rev 0)
+++ extra-x86_64/PKGBUILD       2015-06-30 04:09:15 UTC (rev 241413)
@@ -0,0 +1,37 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <[email protected]>
+
+pkgname=dleyna-connector-dbus
+pkgver=0.2.0
+pkgrel=2
+pkgdesc="Provides a D-Bus API for the dLeyna services"
+arch=(i686 x86_64)
+url="http://01.org/dleyna";
+license=(LGPL2.1)
+depends=(dleyna-core dbus)
+source=(https://01.org/sites/default/files/downloads/dleyna/$pkgname-$pkgver.tar.gz
+        crash.patch)
+sha256sums=('e791511206761282a658bb8253de076dcb1f8c8fbdc81219efe5ffe80cb2bea5'
+            'cf44774ba06160dbd6c8aa5f1a3caae0f054f44c3ae4613a8d17aa8464ee9195')
+
+prepare() {
+  cd $pkgname-$pkgver
+  patch -Np1 -i ../crash.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+    --disable-static
+  make
+}
+
+check() {
+  cd $pkgname-$pkgver
+  make check
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}

Copied: dleyna-connector-dbus/repos/extra-x86_64/crash.patch (from rev 241412, 
dleyna-connector-dbus/trunk/crash.patch)
===================================================================
--- extra-x86_64/crash.patch                            (rev 0)
+++ extra-x86_64/crash.patch    2015-06-30 04:09:15 UTC (rev 241413)
@@ -0,0 +1,83 @@
+From 00870c6f44b68582c98cb36e73297f014c269f95 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <[email protected]>
+Date: Mon, 19 Jan 2015 19:24:05 +0100
+Subject: [PATCH] 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=<optimized out>, sender=0x7f7c94009750 ":1.603",
+    object=<optimized out>, interface=<optimized out>,
+    method=<optimized out>, parameters=<optimized out>,
+    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=<optimized out>) at gmain.c:3781
+    at gmain.c:3975
+    (server=<optimized out>, control_point=<optimized out>,
+    user_data=0x0) at libdleyna/core/main-loop.c:155
+    argv=<optimized out>) 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");

Reply via email to