When making a tempdir for windows unit tests, avoid an extra backslash

The extra \ is harmless, but mildly unpleasant.

Fixes 12392; bugfix on 0.2.2.25-alpha where we started using
GetTempDir().  Based on a patch by Gisle Vanem.
This commit is contained in:
Nick Mathewson 2014-07-16 11:31:22 +02:00
parent 4da4c4c63f
commit 3f683aadcd

View File

@ -106,11 +106,18 @@ setup_directory(void)
{ {
char buf[MAX_PATH]; char buf[MAX_PATH];
const char *tmp = buf; const char *tmp = buf;
const char *extra_backslash = "";
/* If this fails, we're probably screwed anyway */ /* If this fails, we're probably screwed anyway */
if (!GetTempPathA(sizeof(buf),buf)) if (!GetTempPathA(sizeof(buf),buf))
tmp = "c:\\windows\\temp"; tmp = "c:\\windows\\temp\\";
if (strcmpend(tmp, "\\")) {
/* According to MSDN, it should be impossible for GetTempPath to give us
* an answer that doesn't end with \. But let's make sure. */
extra_backslash = "\\";
}
tor_snprintf(temp_dir, sizeof(temp_dir), tor_snprintf(temp_dir, sizeof(temp_dir),
"%s\\tor_test_%d_%s", tmp, (int)getpid(), rnd32); "%s%stor_test_%d_%s", tmp, extra_backslash,
(int)getpid(), rnd32);
r = mkdir(temp_dir); r = mkdir(temp_dir);
} }
#else #else