Explorar el Código

zip: Ignore symlinks when recursively zipping files

This prevents infinite loops when symlinks point to a parent directory.
Idan Horowitz hace 3 años
padre
commit
fa7ae7288b
Se han modificado 1 ficheros con 4 adiciones y 3 borrados
  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);
         Core::DirIterator it(path, Core::DirIterator::Flags::SkipParentAndBaseDir);
         while (it.has_next()) {
         while (it.has_next()) {
             auto child_path = it.next_full_path();
             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);
                 add_file(child_path);
-            } else {
+            else
                 handle_directory(child_path, handle_directory);
                 handle_directory(child_path, handle_directory);
-            }
         }
         }
     };
     };