Skip to content

Commit 52af630

Browse files
committed
fix(cpio): Fix dupplicated CPIO entries by overwriting them.
1 parent 29b6636 commit 52af630

File tree

43 files changed

+52
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+52
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:358956e97bf05618dfdb31102031580a4ef12dfb078913133de0983a283022ef
3+
size 185338
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:f1a16c967d0aa31d3524f6ada74c47f3d952349bf533588092cf43e43f0ecc0f
3+
size 37748
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../mnt/application/gdbserver
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:23d417a1fbfe5a1920250002d32de700f5d5ec1b1a014f46c1d8a94aa3225491
3+
size 68684
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:bf5e5ee2e16963a8ba27e648aaa6e057eb6504363d3e9d6f884b48a3370dfc21
3+
size 73032
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lrz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lrz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lrz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lsz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lsz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lsz
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../bin/busybox

unblob/file_utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ def open( # noqa: A003
628628

629629
def unlink(self, path):
630630
"""Delete file within extraction path."""
631-
logger.debug("unlink file", file_path=path)
631+
logger.debug("unlink file", file_path=path, _verbosity=3)
632632
safe_path = self._get_extraction_path(path, "unlink")
633633

634634
safe_path.unlink(missing_ok=True)

unblob/handlers/archive/cpio.py

+2
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ def dump_entries(self, fs: FileSystem):
211211
continue
212212

213213
if stat.S_ISREG(entry.mode):
214+
fs.unlink(entry.path)
214215
fs.carve(entry.path, self.file, entry.start_offset, entry.size)
215216
elif stat.S_ISDIR(entry.mode):
216217
fs.mkdir(
@@ -222,6 +223,7 @@ def dump_entries(self, fs: FileSystem):
222223
self.file[entry.start_offset : entry.start_offset + entry.size]
223224
).decode("utf-8")
224225
)
226+
fs.unlink(entry.path)
225227
fs.create_symlink(src=link_path, dst=entry.path)
226228
elif (
227229
stat.S_ISCHR(entry.mode)

0 commit comments

Comments
 (0)