From fa7ae7288bb6979c59e37d0ac8a64a39f150bac1 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Fri, 28 Jan 2022 15:38:31 +0200 Subject: [PATCH] zip: Ignore symlinks when recursively zipping files This prevents infinite loops when symlinks point to a parent directory. --- Userland/Utilities/zip.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Userland/Utilities/zip.cpp b/Userland/Utilities/zip.cpp index d8d4dbd7fd..dca40dcca9 100644 --- a/Userland/Utilities/zip.cpp +++ b/Userland/Utilities/zip.cpp @@ -101,11 +101,12 @@ ErrorOr 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); - } } };