mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 13:13:44 +01:00
Resolve some coverity complaints in test_util_glob().
Coverity's first complaint was that we didn't check the return values from chmod. That's easily fixed. Coverity's second complaint was that there were code paths where we pass NULL to chmod. For example, if this line failed, we'd "goto done", and then pass NULL to chmod. tt_ptr_op(dirname, OP_NE, NULL); Closes #40103. Bug not in any released Tor.
This commit is contained in:
parent
ebaa1a1d23
commit
4e8cb410a7
@ -4475,11 +4475,11 @@ test_util_glob(void *ptr)
|
||||
tor_asprintf(&forbidden_forbidden,
|
||||
"%s"PATH_SEPARATOR"forbidden"PATH_SEPARATOR"forbidden",dirname);
|
||||
#ifndef _WIN32
|
||||
chmod(forbidden, 0700);
|
||||
tt_int_op(0, OP_EQ, chmod(forbidden, 0700));
|
||||
#endif
|
||||
tt_int_op(0, OP_EQ, create_test_directory_structure(forbidden));
|
||||
#ifndef _WIN32
|
||||
chmod(forbidden, 0);
|
||||
tt_int_op(0, OP_EQ, chmod(forbidden, 0));
|
||||
#endif
|
||||
|
||||
#define TEST(input) \
|
||||
@ -4638,10 +4638,10 @@ test_util_glob(void *ptr)
|
||||
|
||||
done:
|
||||
#ifndef _WIN32
|
||||
chmod(forbidden, 0700);
|
||||
chmod(dir1_forbidden, 0700);
|
||||
chmod(dir2_forbidden, 0700);
|
||||
chmod(forbidden_forbidden, 0700);
|
||||
(void) chmod(forbidden, 0700);
|
||||
(void) chmod(dir1_forbidden, 0700);
|
||||
(void) chmod(dir2_forbidden, 0700);
|
||||
(void) chmod(forbidden_forbidden, 0700);
|
||||
#endif
|
||||
tor_free(dir1);
|
||||
tor_free(dir2);
|
||||
@ -4825,10 +4825,20 @@ test_util_get_glob_opened_files(void *ptr)
|
||||
|
||||
done:
|
||||
#ifndef _WIN32
|
||||
chmod(forbidden, 0700);
|
||||
chmod(dir1_forbidden, 0700);
|
||||
chmod(dir2_forbidden, 0700);
|
||||
chmod(forbidden_forbidden, 0700);
|
||||
{
|
||||
int chmod_failed = 0;
|
||||
if (forbidden)
|
||||
chmod_failed |= chmod(forbidden, 0700);
|
||||
if (dir1_forbidden)
|
||||
chmod_failed |= chmod(dir1_forbidden, 0700);
|
||||
if (dir2_forbidden)
|
||||
chmod_failed |= chmod(dir2_forbidden, 0700);
|
||||
if (forbidden_forbidden)
|
||||
chmod_failed |= chmod(forbidden_forbidden, 0700);
|
||||
if (chmod_failed) {
|
||||
TT_FAIL(("unable to chmod a file on cleanup: %s", strerror(errno)));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
tor_free(dir1);
|
||||
tor_free(dir2);
|
||||
|
Loading…
Reference in New Issue
Block a user