[Spice-devel] [PATCH] smartcard: do not keep weak ref when device is NULL
Frediano Ziglio
fziglio at redhat.com
Tue Jan 29 13:35:19 UTC 2019
>
> 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 <uril at redhat.com>
Yes, not much sense to call g_object_add_weak_pointer on NULL.
Acked-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> 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 3b3fc27cc..49e765b7c 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)
More information about the Spice-devel
mailing list