[tor-dev] [Patch] src/test.c

Gisle Vanem gvanem at broadpark.no
Thu Apr 7 22:26:44 UTC 2011


"Nick Mathewson" <nickm at freehaven.net> wrote:

> Sounds fine to me.  Alternatively, I believe we could just call
> GetTempPath(): that's what it's there for.

Agreed. I first thought of using GetTempPath() but that involves another 
buffer and checking the ret-val. It's safes though. From:
http://msdn.microsoft.com/en-us/library/aa364992(v=vs.85).aspx

The GetTempPath function checks for the existence of environment 
variables in the following order and uses the first path found:
  1.. The path specified by the TMP environment variable.
  2.. The path specified by the TEMP environment variable.
  3.. The path specified by the USERPROFILE environment variable.
  4.. The Windows directory.

Another patch for this:

--- ../../Git-latest/src/test/test.c    2011-03-30 08:58:28 -0100
+++ test.c      2011-04-07 21:25:51 -0100
@@ -85,9 +85,15 @@

 #ifdef MS_WINDOWS
   // XXXX
-  tor_snprintf(temp_dir, sizeof(temp_dir),
-               "c:\\windows\\temp\\tor_test_%d", (int)getpid());
-  r = mkdir(temp_dir);
+  {
+    char buf[MAX_PATH], *tmp = buf;
+    /* If this fails, we're probably screwed anyway */
+    if (!GetTempPath(sizeof(buf),buf))
+      tmp = "c:\\windows\\temp";
+    tor_snprintf(temp_dir, sizeof(temp_dir),
+                 "%s\\tor_test_%d", tmp, (int)getpid());
+    r = mkdir(temp_dir);
+  }
 #else
   tor_snprintf(temp_dir, sizeof(temp_dir), "/tmp/tor_test_%d", (int) getpid());
   r = mkdir(temp_dir, 0700);

--------------

--gv


More information about the tor-dev mailing list