From 48f5e44b438567300a2d4f334dc993c45637d94e Mon Sep 17 00:00:00 2001 From: rapperskull Date: Thu, 26 May 2022 21:03:11 +0200 Subject: [PATCH] Fix extraction with "." or ".." entries --- erofs_tool.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erofs_tool.py b/erofs_tool.py index 628beb9..7f9d0c7 100755 --- a/erofs_tool.py +++ b/erofs_tool.py @@ -521,15 +521,15 @@ class DirInode(Inode): for dirent in self.dirents: out_path = os.path.join(output_dir, dirent.filename) print("Extracting %r" % out_path.decode()) + # Some versions of mkfs.erofs add entries for "." and ".." + if dirent.filename in (b'.', b'..'): + continue if os.path.exists(out_path): raise ValueError("Duplicate file %r" % out_path) child_inode = self.erofs.get_inode(dirent.nid, dirent.file_type) if dirent.file_type == FileType.EROFS_FT_SYMLINK: os.symlink(child_inode.get_symlink_dest(), out_path) elif dirent.file_type == FileType.EROFS_FT_DIR: - # Some versions of mkfs.erofs add entries for "." and ".." - if dirent.filename in (b'.', b'..'): - continue os.mkdir(out_path) # Always make directories mode 755 os.chmod(out_path, 0o755)