gdbus: Escape nonce files in dbus addressess
authorAlexander Larsson <alexl@redhat.com>
Tue, 17 Apr 2012 13:50:53 +0000 (15:50 +0200)
committerAlexander Larsson <alexl@redhat.com>
Thu, 19 Apr 2012 08:24:08 +0000 (10:24 +0200)
Otherwise the colon in c:\blah made for trouble

gio/gdbusserver.c

index 5e7dd85..e132b70 100644 (file)
@@ -843,6 +843,7 @@ try_tcp (GDBusServer  *server,
       guint n;
       gsize bytes_written;
       gsize bytes_remaining;
+      char *file_escaped;
 
       server->nonce = g_new0 (guchar, 16);
       for (n = 0; n < 16; n++)
@@ -878,10 +879,12 @@ try_tcp (GDBusServer  *server,
           bytes_remaining -= ret;
         }
       close (fd);
+      file_escaped = g_uri_escape_string (server->nonce_file, "/\\", FALSE);
       server->client_address = g_strdup_printf ("nonce-tcp:host=%s,port=%d,noncefile=%s",
                                                 host,
                                                 port_num,
-                                                server->nonce_file);
+                                                file_escaped);
+      g_free (file_escaped);
     }
   else
     {