[telepathy-gabble/master] don't explode if mkdtemp failed

Guillaume Desmottes guillaume.desmottes at collabora.co.uk
Thu Apr 2 10:41:28 PDT 2009


---
 src/ft-channel.c |   10 ++++++++--
 src/ft-manager.c |    2 +-
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/ft-channel.c b/src/ft-channel.c
index 13d9c59..7d8a785 100644
--- a/src/ft-channel.c
+++ b/src/ft-channel.c
@@ -1453,13 +1453,17 @@ file_transfer_iface_init (gpointer g_iface,
 static const gchar *
 get_local_unix_socket_path (GabbleFileTransferChannel *self)
 {
+  const gchar *tmp_dir;
   gchar *path = NULL;
   gchar *name;
   struct stat buf;
 
+  tmp_dir = gabble_ft_manager_get_tmp_dir (self->priv->connection->ft_manager);
+  if (tmp_dir == NULL)
+    return NULL;
+
   name = g_strdup_printf ("ft-channel-%p", self);
-  path = g_build_filename (gabble_ft_manager_get_tmp_dir (
-        self->priv->connection->ft_manager), name, NULL);
+  path = g_build_filename (tmp_dir, name, NULL);
   g_free (name);
 
   if (g_stat (path, &buf) == 0)
@@ -1618,6 +1622,8 @@ setup_local_socket (GabbleFileTransferChannel *self)
   GError *error = NULL;
 
   path = get_local_unix_socket_path (self);
+  if (path == NULL)
+    return FALSE;
 
   self->priv->listener = gibber_listener_new ();
 
diff --git a/src/ft-manager.c b/src/ft-manager.c
index 2e601cf..1b9a52a 100644
--- a/src/ft-manager.c
+++ b/src/ft-manager.c
@@ -585,7 +585,7 @@ gabble_ft_manager_get_tmp_dir (GabbleFtManager *self)
       g_get_tmp_dir ());
   self->priv->tmp_dir = mkdtemp (self->priv->tmp_dir);
   if (self->priv->tmp_dir == NULL)
-    g_critical ("mkdtemp failed: %s\n", g_strerror (errno));
+    DEBUG ("mkdtemp failed: %s\n", g_strerror (errno));
 
   return self->priv->tmp_dir;
 }
-- 
1.5.6.5




More information about the telepathy-commits mailing list