Skip to content

Commit 3390548

Browse files
author
user
committed
Handle cases where the name of a member in a tar archive may use different separators.
1 parent 7f2a979 commit 3390548

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/pip/_internal/utils/unpacking.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,15 @@ def _check_link_target(tar: tarfile.TarFile, tarinfo: tarfile.TarInfo) -> None:
266266
try:
267267
tar.getmember(linkname)
268268
except KeyError:
269+
if "\\" in linkname or "/" in linkname:
270+
if "\\" in linkname:
271+
linkname = linkname.replace("\\", "/")
272+
else:
273+
linkname = linkname.replace("/", "\\")
274+
try:
275+
tar.getmember(linkname)
276+
except KeyError:
277+
raise KeyError(linkname)
269278
raise KeyError(linkname)
270279

271280
for member in tar.getmembers():

0 commit comments

Comments
 (0)