diff options
author | Debarshi Ray <debarshir@freedesktop.org> | 2015-01-20 11:20:07 +0100 |
---|---|---|
committer | Debarshi Ray <debarshir@gnome.org> | 2015-03-12 23:28:34 +0100 |
commit | d8ebea65fe69d6df05ee87bdabf30ae8dc313b26 (patch) | |
tree | c9e96a8b24b7c3b3a2bf56f9d8c7bc4a9465f852 | |
parent | e659fc80b7f212c8b6af3fe1674ab34a4236f518 (diff) | |
download | dleyna-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.c | 4 |
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); |