From 889e6273bfe0b97ff5a5c53beb79e5b7715def7e Mon Sep 17 00:00:00 2001 From: Uri Lublin Date: Tue, 29 Jan 2019 12:53:34 +0200 Subject: [PATCH] smartcard: do not keep weak ref when device is NULL When a client disconnects, smartcard_channel_client_set_char_device is called with a NULL "device" argument. In that case there is no need to take a weak reference to the device. Without this patch the server complains: g_object_add_weak_pointer: assertion 'G_IS_OBJECT (object)' failed and aborts when a second client attempts to connect. Signed-off-by: Uri Lublin Acked-by: Frediano Ziglio --- server/smartcard-channel-client.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/smartcard-channel-client.c b/server/smartcard-channel-client.c index 3b3fc27c..49e765b7 100644 --- a/server/smartcard-channel-client.c +++ b/server/smartcard-channel-client.c @@ -389,8 +389,10 @@ void smartcard_channel_client_set_char_device(SmartCardChannelClient *scc, } scc->priv->smartcard = device; - g_object_add_weak_pointer(G_OBJECT(scc->priv->smartcard), - (gpointer*)&scc->priv->smartcard); + if (scc->priv->smartcard) { + g_object_add_weak_pointer(G_OBJECT(scc->priv->smartcard), + (gpointer*)&scc->priv->smartcard); + } } RedCharDeviceSmartcard* smartcard_channel_client_get_char_device(SmartCardChannelClient *scc)