[tor-commits] [tor/master] Tweak usage of get_current_working_dir() for tor_malloc() paranoia.

nickm at torproject.org nickm at torproject.org
Fri Aug 4 16:27:45 UTC 2017


commit 89407bedf8980b9dd7a10b268b351e8b2938ac80
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Aug 4 12:26:35 2017 -0400

    Tweak usage of get_current_working_dir() for tor_malloc() paranoia.
    
    We assume that tor_free() is not required to be compatible with
    the platform malloc(), so we need to use a strdup here.
---
 src/common/compat.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/common/compat.c b/src/common/compat.c
index 8e3d97420..f5991a640 100644
--- a/src/common/compat.c
+++ b/src/common/compat.c
@@ -2350,7 +2350,15 @@ static char *
 alloc_getcwd(void)
 {
 #ifdef HAVE_GET_CURRENT_DIR_NAME
-  return get_current_dir_name();
+  /* Glibc makes this nice and simple for us. */
+  char *cwd = get_current_dir_name();
+  char *result = NULL;
+  if (cwd) {
+    /* We make a copy here, in case tor_malloc() is not malloc(). */
+    result = tor_strdup(cwd);
+    raw_free(cwd); // alias for free to avoid tripping check-spaces.
+  }
+  return result;
 #else
   size_t size = 1024;
   char *buf = NULL;



More information about the tor-commits mailing list