| 
														
															@@ -4949,6 +4949,41 @@ test_config_include_empty_file_folder(void *data) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   tor_free(dir); 
														 | 
														
														 | 
														
															   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 
														 | 
														
														 | 
														
															 static void 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 test_config_include_recursion_before_after(void *data) 
														 | 
														
														 | 
														
															 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_does_not_exist, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   CONFIG_TEST(include_error_in_included_file, 0), 
														 | 
														
														 | 
														
															   CONFIG_TEST(include_error_in_included_file, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   CONFIG_TEST(include_empty_file_folder, 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_before_after, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   CONFIG_TEST(include_recursion_after_only, 0), 
														 | 
														
														 | 
														
															   CONFIG_TEST(include_recursion_after_only, 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   CONFIG_TEST(include_folder_order, 0), 
														 | 
														
														 | 
														
															   CONFIG_TEST(include_folder_order, 0), 
														 |