Drop terminating slash in _dbus_get_tmpdir
authorTor Lillqvist <tml@iki.fi>
Thu, 22 Oct 2009 01:14:04 +0000 (04:14 +0300)
committerRalf Habacker <ralf.habacker@freenet.de>
Tue, 1 Dec 2009 08:26:00 +0000 (09:26 +0100)
The callers will append strings starting with a slash anyway.

dbus/dbus-sysdeps-win.c

index 7939008..da8a8ef 100644 (file)
@@ -2465,8 +2465,21 @@ _dbus_get_tmpdir(void)
 
   if (tmpdir == NULL)
     {
+      char *last_slash;
+
       if (!GetTempPath (sizeof (buf), buf))
-        strcpy (buf, "\\");
+        {
+          _dbus_warn ("GetTempPath failed\n");
+          _dbus_abort ();
+        }
+
+      /* Drop terminating backslash or slash */
+      last_slash = _mbsrchr (buf, '\\');
+      if (last_slash > buf && last_slash[1] == '\0')
+        last_slash[0] = '\0';
+      last_slash = _mbsrchr (buf, '/');
+      if (last_slash > buf && last_slash[1] == '\0')
+        last_slash[0] = '\0';
 
       tmpdir = buf;
     }