Re-setting SoupSession TLS interaction leaks original instance
If you set the SOUP_SESSION_TLS_INTERACTION property of a SoupSession, the current one is overwritten without a deref, and the new one is referenced. It looks as though the intention was for this to be managed in the socket properties (which is marked for destruction at the end of the property setter), but it was holding its own reference.
case PROP_TLS_INTERACTION:
priv->tls_interaction = g_value_dup_object (value);
socket_props_changed = TRUE;
break;
This results in a leak of the prior GTlsInteraction object. This is probably rare since these tend be set only once per object, but this can happen when the intent is to update the session with an updated client certificate.
Suggest
case PROP_TLS_INTERACTION:
if (priv->tls_interaction != NULL)
g_clear_object (&priv->tls_interaction);
priv->tls_interaction = g_value_dup_object (value);
socket_props_changed = TRUE;
break;