mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Unit test for case where %included dir exists but is unreadable
This commit is contained in:
parent
5b6f2713cd
commit
f71ff0cabc
@ -4949,6 +4949,41 @@ test_config_include_empty_file_folder(void *data)
|
||||
tor_free(dir);
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
static void
|
||||
test_config_include_no_permission(void *data)
|
||||
{
|
||||
(void)data;
|
||||
config_line_t *result = NULL;
|
||||
|
||||
char *folder_path = NULL;
|
||||
char *dir = tor_strdup(get_fname("test_include_forbidden_folder"));
|
||||
tt_ptr_op(dir, OP_NE, NULL);
|
||||
|
||||
tt_int_op(mkdir(dir, 0700), OP_EQ, 0);
|
||||
|
||||
tor_asprintf(&folder_path, "%s"PATH_SEPARATOR"forbidden_dir", dir);
|
||||
tt_int_op(mkdir(folder_path, 0100), OP_EQ, 0);
|
||||
|
||||
char torrc_contents[1000];
|
||||
tor_snprintf(torrc_contents, sizeof(torrc_contents),
|
||||
"%%include %s\n",
|
||||
folder_path);
|
||||
|
||||
int include_used;
|
||||
tt_int_op(config_get_lines_include(torrc_contents, &result, 0,&include_used),
|
||||
OP_EQ, -1);
|
||||
tt_ptr_op(result, OP_EQ, NULL);
|
||||
|
||||
done:
|
||||
config_free_lines(result);
|
||||
tor_free(folder_path);
|
||||
if (dir)
|
||||
chmod(dir, 0700);
|
||||
tor_free(dir);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
test_config_include_recursion_before_after(void *data)
|
||||
{
|
||||
@ -5437,6 +5472,9 @@ struct testcase_t config_tests[] = {
|
||||
CONFIG_TEST(include_does_not_exist, 0),
|
||||
CONFIG_TEST(include_error_in_included_file, 0),
|
||||
CONFIG_TEST(include_empty_file_folder, 0),
|
||||
#ifndef _WIN32
|
||||
CONFIG_TEST(include_no_permission, 0),
|
||||
#endif
|
||||
CONFIG_TEST(include_recursion_before_after, 0),
|
||||
CONFIG_TEST(include_recursion_after_only, 0),
|
||||
CONFIG_TEST(include_folder_order, 0),
|
||||
|
Loading…
Reference in New Issue
Block a user