diff --git a/Lib/pathlib.py b/Lib/pathlib.py index 69653938ef7..0484dacd791 100644 --- a/Lib/pathlib.py +++ b/Lib/pathlib.py @@ -192,7 +192,9 @@ def resolve(self, path, strict=False): s = self._ext_to_normal(_getfinalpathname(s)) except FileNotFoundError: previous_s = s - s = os.path.abspath(os.path.join(s, os.pardir)) + s = os.path.dirname(s) + if previous_s == s: + return path else: if previous_s is None: return s diff --git a/Misc/NEWS b/Misc/NEWS index 3d6aaa793be..1987e75c0ee 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -208,6 +208,8 @@ Core and Builtins Library ------- +- Issue #29079: Prevent infinite loop in pathlib.resolve() on Windows + - Issue #13051: Fixed recursion errors in large or resized curses.textpad.Textbox. Based on patch by Tycho Andersen.