tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 89407bedf8980b9dd7a10b268b351e8b2938ac80
parent bfe740f0658dc05e9cc624a46ae21bb098117197
Author: Nick Mathewson <nickm@torproject.org>
Date:   Fri,  4 Aug 2017 12:26:35 -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.

Diffstat:
Msrc/common/compat.c | 10+++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git 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;