Commit 06f6fbff authored by Brian Curtin's avatar Brian Curtin

Fix #18530. Remove extra stat call from posixpath.ismount

parent 7b3902a2
...@@ -182,18 +182,24 @@ def lexists(path): ...@@ -182,18 +182,24 @@ def lexists(path):
def ismount(path): def ismount(path):
"""Test whether a path is a mount point""" """Test whether a path is a mount point"""
if islink(path):
# A symlink can never be a mount point
return False
try: try:
s1 = os.lstat(path) s1 = os.lstat(path)
if isinstance(path, bytes): except OSError:
parent = join(path, b'..') # It doesn't exist -- so not a mount point. :-)
else: return False
parent = join(path, '..') else:
if stat.S_ISLNK(s1.st_mode):
return False
if isinstance(path, bytes):
parent = join(path, b'..')
else:
parent = join(path, '..')
try:
s2 = os.lstat(parent) s2 = os.lstat(parent)
except OSError: except OSError:
return False # It doesn't exist -- so not a mount point :-) return False
dev1 = s1.st_dev dev1 = s1.st_dev
dev2 = s2.st_dev dev2 = s2.st_dev
if dev1 != dev2: if dev1 != dev2:
......
...@@ -162,6 +162,9 @@ Core and Builtins ...@@ -162,6 +162,9 @@ Core and Builtins
Library Library
------- -------
- Issue #18530: Remove additional stat call from posixpath.ismount.
Patch by Alex Gaynor.
- Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj() - Issue #18514: Fix unreachable Py_DECREF() call in PyCData_FromBaseObj()
- Issue #9177: Calling read() or write() now raises ValueError, not - Issue #9177: Calling read() or write() now raises ValueError, not
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment