Fix launching of dbus-daemon on Windows in paths containing spaces
authorWolfgang Baron <netz.frei freenet de>
Wed, 18 Jul 2012 17:09:44 +0000 (18:09 +0100)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Wed, 18 Jul 2012 17:10:07 +0000 (18:10 +0100)
If dbus is installed in a path, which contains a space, dbus-launch will
not launch the daemon. That is so, because a command line is built from
just the path to the daemon and a parameter. The path has to be
surrounded with quotes. This can be done unconditionally, because the
quotes do not cause any trouble even if they are not needed.

Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=49450

tools/dbus-launch-win.c

index ea4bf0d..215fac3 100644 (file)
@@ -130,9 +130,10 @@ main (int argc, char **argv)
      fprintf (stderr, "%ls %ls\n", dbusDaemonPath, command);
 #else
    command[0] = L'\0';
-   /* Windows CE has a different interpretation of cmdline: Start with argv[1].  */
-   wcscpy_s (command, sizeof (command), dbusDaemonPath);
-   wcscat_s (command, sizeof (command), L" --session");
+   /* Windows cmdline starts with path, which can contain spaces.  */
+   wcscpy_s (command, sizeof (command), L"\"");
+   wcscat_s (command, sizeof (command), dbusDaemonPath);
+   wcscat_s (command, sizeof (command), L"\" --session");
    if (verbose)
      fprintf (stderr, "%ls\n", command);
 #endif