From: Jason R. Coombs Date: Mon, 8 Dec 2025 07:33:33 +0000 (-0500) Subject: Extract a function to check the target. Remove the _safe_realpath, now no longer... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1d85b9c4cbf08888ded140f9a308ba266d5923f;p=thirdparty%2FPython%2Fcpython.git Extract a function to check the target. Remove the _safe_realpath, now no longer needed. --- diff --git a/Lib/pdb.py b/Lib/pdb.py index 33ac6a13640f..007541ed0a46 100644 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -183,34 +183,28 @@ class _ExecutableTarget: class _ScriptTarget(_ExecutableTarget): def __init__(self, target): - self._target = self._safe_realpath(target) - - if not os.path.exists(self._target): - print(f'Error: {target} does not exist') - sys.exit(1) - if os.path.isdir(self._target): - print(f'Error: {target} is a directory') - sys.exit(1) + self._check(target) + self._target = os.path.realpath(target) # If PYTHONSAFEPATH (-P) is not set, sys.path[0] is the directory # of pdb, and we should replace it with the directory of the script if not sys.flags.safe_path: sys.path[0] = os.path.dirname(self._target) - def __repr__(self): - return self._target - @staticmethod - def _safe_realpath(path): + def _check(target): """ - Return the canonical path (realpath) if it is accessible from the userspace. - Otherwise (for example, if the path is a symlink to an anonymous pipe), - return the original path. - - See GH-142315. + Check that target is plausibly a script. """ - realpath = os.path.realpath(path) - return realpath if os.path.exists(realpath) else path + if not os.path.exists(target): + print(f'Error: {target} does not exist') + sys.exit(1) + if os.path.isdir(target): + print(f'Error: {target} is a directory') + sys.exit(1) + + def __repr__(self): + return self._target @property def filename(self):