Skip to content

Commit a4329f0

Browse files
authored
Merge pull request #205 from mtelvers/fix-dot-slash-tar-paths
Fix copy step failure with tar 1.34 and CVE-2025-45582 patch
2 parents 9c49ae7 + c3d7431 commit a4329f0

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/tar_transfer.ml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ and send_dir ~src_dir ~dst ~to_untar ~user items =
116116
let dst = dst / Filename.basename src in
117117
copy_symlink ~src ~target ~dst ~to_untar ~user
118118
| `Dir (src, items) ->
119-
let dst = dst / Filename.basename src in
119+
let base = Filename.basename src in
120+
let dst = if base = "." then dst else dst / base in
120121
copy_dir ~src_dir ~src ~dst ~items ~to_untar ~user
121122
)
122123

@@ -206,7 +207,8 @@ let rec map_transform ~dst transformations = function
206207
let dst = dst / Filename.basename src in
207208
Hashtbl.add transformations src dst
208209
| `Dir (src, items) ->
209-
let dst = dst / Filename.basename src in
210+
let base = Filename.basename src in
211+
let dst = if base = "." then dst else dst / base in
210212
Hashtbl.add transformations src dst;
211213
Log.debug(fun f -> f "Copy dir %S -> %S" src dst);
212214
List.iter (map_transform ~dst transformations) items

0 commit comments

Comments
 (0)