summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDebarshi Ray <debarshir@freedesktop.org>2015-01-20 11:20:07 +0100
committerDebarshi Ray <debarshir@gnome.org>2015-03-12 23:28:34 +0100
commitd8ebea65fe69d6df05ee87bdabf30ae8dc313b26 (patch)
treec9e96a8b24b7c3b3a2bf56f9d8c7bc4a9465f852
parente659fc80b7f212c8b6af3fe1674ab34a4236f518 (diff)
downloaddleyna-renderer-d8ebea65fe69d6df05ee87bdabf30ae8dc313b26.tar.gz
Ensure that g_context.watchers has a valid value
Since g_context.watchers is an unsigned integer, we should be careful not to decrement it below zero. This can happen if the service is spawned as a result of the following command: $ gdbus call \ --session \ --dest com.intel.dleyna-renderer \ --object-path /com/intel/dLeynaRenderer \ --method com.intel.dLeynaRenderer.Manager.Release
-rw-r--r--libdleyna/renderer/server.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libdleyna/renderer/server.c b/libdleyna/renderer/server.c
index 6d5afa6..e15c326 100644
--- a/libdleyna/renderer/server.c
+++ b/libdleyna/renderer/server.c
@@ -688,7 +688,9 @@ static void prv_remove_client(const gchar *name)
dlr_upnp_lost_client(g_context.upnp, name);
- g_context.watchers--;
+ if (g_context.watchers > 0)
+ g_context.watchers--;
+
if (g_context.watchers == 0)
if (!dleyna_settings_is_never_quit(g_context.settings))
dleyna_task_processor_set_quitting(g_context.processor);