aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy')
-rw-r--r--libempathy/empathy-server-tls-handler.c14
-rw-r--r--libempathy/empathy-tls-verifier.c15
2 files changed, 18 insertions, 11 deletions
diff --git a/libempathy/empathy-server-tls-handler.c b/libempathy/empathy-server-tls-handler.c
index 540bb35fa..95c0b0a9a 100644
--- a/libempathy/empathy-server-tls-handler.c
+++ b/libempathy/empathy-server-tls-handler.c
@@ -105,6 +105,10 @@ tls_handler_init_async (GAsyncInitable *initable,
const gchar *bus_name;
TpDBusDaemon *dbus;
GError *error = NULL;
+ /*
+ * Used when channel doesn't implement ReferenceIdentities. A GStrv
+ * with [0] the hostname, and [1] a NULL terminator.
+ */
gchar *default_identities[2];
EmpathyServerTLSHandler *self = EMPATHY_SERVER_TLS_HANDLER (initable);
EmpathyServerTLSHandlerPriv *priv = GET_PRIV (self);
@@ -128,22 +132,22 @@ tls_handler_init_async (GAsyncInitable *initable,
* If the channel doesn't implement the ReferenceIdentities parameter
* then fallback to the hostname.
*/
- if (!identities)
+ if (identities == NULL)
{
- default_identities[0] = (gchar*)hostname;
+ default_identities[0] = (gchar *) hostname;
default_identities[1] = NULL;
- identities = (const gchar**)default_identities;
+ identities = (const gchar **) default_identities;
}
else
{
#ifdef ENABLE_DEBUG
- gchar *output = g_strjoinv (", ", (gchar**)identities);
+ gchar *output = g_strjoinv (", ", (gchar **) identities);
DEBUG ("Received reference identities: %s", output);
g_free (output);
#endif /* ENABLE_DEBUG */
}
- priv->reference_identities = g_strdupv ((gchar**)identities);
+ priv->reference_identities = g_strdupv ((gchar **) identities);
cert_object_path = tp_asv_get_object_path (properties,
EMP_IFACE_CHANNEL_TYPE_SERVER_TLS_CONNECTION ".ServerCertificate");
diff --git a/libempathy/empathy-tls-verifier.c b/libempathy/empathy-tls-verifier.c
index e0fa130bf..47a54333c 100644
--- a/libempathy/empathy-tls-verifier.c
+++ b/libempathy/empathy-tls-verifier.c
@@ -257,7 +257,7 @@ perform_verification (EmpathyTLSVerifier *self,
guint n_list, n_anchors;
guint verify_output;
gint res;
- gchar **i;
+ gint i;
gboolean matched;
EmpathyTLSVerifierPriv *priv = GET_PRIV (self);
@@ -300,13 +300,16 @@ perform_verification (EmpathyTLSVerifier *self,
}
/* now check if the certificate matches one of the reference identities. */
- for (i = priv->reference_identities, matched = FALSE; i && *i; ++i)
+ if (priv->reference_identities != NULL)
{
- const gchar *identity = *i;
- if (gnutls_x509_crt_check_hostname (list[0], identity) == 1)
+ for (i = 0, matched = FALSE; priv->reference_identities[i] != NULL; ++i)
{
- matched = TRUE;
- break;
+ if (gnutls_x509_crt_check_hostname (list[0],
+ priv->reference_identities[i]) == 1)
+ {
+ matched = TRUE;
+ break;
+ }
}
}