From: Nick Mathewson Date: Mon, 14 Mar 2016 17:02:50 +0000 (-0400) Subject: When using open() to make sure we created a dir, close the fd afterwards X-Git-Tag: tor-0.2.8.2-alpha~65 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36ad65a7d1709deeb4bc1ae3e994a30c3e7bf789;p=thirdparty%2Ftor.git When using open() to make sure we created a dir, close the fd afterwards Found by coverity. Not in any released Tor. Fixes CID 1355640. Also, don't check for fd correctness with assert(fd). You need to assert (fd >= 0). --- diff --git a/src/common/util.c b/src/common/util.c index b4355115d1..e8be91f459 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -2114,7 +2114,10 @@ check_private_dir(const char *dirname, cpd_check_t check, * permissions on the directory will be checked again below.*/ fd = open(sandbox_intern_string(dirname), O_NOFOLLOW); - if ( fd == -1 ) return -1; + if (fd == -1) + return -1; + else + close(fd); } else if (!(check & CPD_CHECK)) { log_warn(LD_FS, "Directory %s does not exist.", dirname); @@ -2126,7 +2129,7 @@ check_private_dir(const char *dirname, cpd_check_t check, return 0; } - tor_assert(fd); + tor_assert(fd >= 0); //f = tor_strdup(dirname); //clean_name_for_stat(f);