Ver código fonte

zip: Ignore symlinks when recursively zipping files

This prevents infinite loops when symlinks point to a parent directory.
Idan Horowitz 3 anos atrás
pai
commit
fa7ae7288b
1 arquivos alterados com 4 adições e 3 exclusões
  1. 4 3
      Userland/Utilities/zip.cpp

+ 4 - 3
Userland/Utilities/zip.cpp

@@ -101,11 +101,12 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
         Core::DirIterator it(path, Core::DirIterator::Flags::SkipParentAndBaseDir);
         while (it.has_next()) {
             auto child_path = it.next_full_path();
-            if (!Core::File::is_directory(child_path)) {
+            if (Core::File::is_link(child_path))
+                return;
+            if (!Core::File::is_directory(child_path))
                 add_file(child_path);
-            } else {
+            else
                 handle_directory(child_path, handle_directory);
-            }
         }
     };