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.
This commit is contained in:
Nick Mathewson 2017-08-04 12:26:35 -04:00
parent bfe740f065
commit 89407bedf8

View File

@ -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;