Index: base/file_util_unittest.cc |
=================================================================== |
--- base/file_util_unittest.cc (revision 180593) |
+++ base/file_util_unittest.cc (working copy) |
@@ -1149,8 +1149,8 @@ |
ASSERT_TRUE(file_util::PathExists(dir_name_from)); |
// Create a file under the directory |
- FilePath file_name_from = |
- dir_name_from.Append(FILE_PATH_LITERAL("Move_Test_File.txt")); |
+ FilePath txt_file_name(FILE_PATH_LITERAL("Move_Test_File.txt")); |
+ FilePath file_name_from = dir_name_from.Append(txt_file_name); |
CreateTextFile(file_name_from, L"Gooooooooooooooooooooogle"); |
ASSERT_TRUE(file_util::PathExists(file_name_from)); |
@@ -1169,6 +1169,17 @@ |
EXPECT_FALSE(file_util::PathExists(file_name_from)); |
EXPECT_TRUE(file_util::PathExists(dir_name_to)); |
EXPECT_TRUE(file_util::PathExists(file_name_to)); |
+ |
+ // Test path traversal. |
+ file_name_from = dir_name_to.Append(txt_file_name); |
+ file_name_to = dir_name_to.Append(FILE_PATH_LITERAL("..")); |
+ file_name_to = file_name_to.Append(txt_file_name); |
+ EXPECT_FALSE(file_util::Move(file_name_from, file_name_to)); |
+ EXPECT_TRUE(file_util::PathExists(file_name_from)); |
+ EXPECT_FALSE(file_util::PathExists(file_name_to)); |
+ EXPECT_TRUE(file_util::MoveUnsafe(file_name_from, file_name_to)); |
+ EXPECT_FALSE(file_util::PathExists(file_name_from)); |
+ EXPECT_TRUE(file_util::PathExists(file_name_to)); |
} |
TEST_F(FileUtilTest, MoveExist) { |
@@ -1525,7 +1536,8 @@ |
FilePath dest_file2(dir_name_from); |
dest_file2 = dest_file2.AppendASCII(".."); |
dest_file2 = dest_file2.AppendASCII("DestFile.txt"); |
- ASSERT_TRUE(file_util::CopyFile(file_name_from, dest_file2)); |
+ ASSERT_FALSE(file_util::CopyFile(file_name_from, dest_file2)); |
+ ASSERT_TRUE(file_util::CopyFileUnsafe(file_name_from, dest_file2)); |
FilePath dest_file2_test(dir_name_from); |
dest_file2_test = dest_file2_test.DirName(); |