[3.12] gh-114257: Ignore the FileNotFound error in ctypes.util._is_elf() (GH-114394) (GH-114444)

(cherry picked from commit 7fc51c3f6b)

Co-authored-by: AN Long <aisk@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2024-01-22 19:10:41 +01:00 committed by GitHub
parent 4bbb9f6f29
commit ed567c1e1f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 2 deletions

View file

@ -96,8 +96,11 @@ def find_library(name):
def _is_elf(filename):
"Return True if the given file is an ELF file"
elf_header = b'\x7fELF'
with open(filename, 'br') as thefile:
return thefile.read(4) == elf_header
try:
with open(filename, 'br') as thefile:
return thefile.read(4) == elf_header
except FileNotFoundError:
return False
def _findLib_gcc(name):
# Run GCC's linker with the -t (aka --trace) option and examine the

View file

@ -122,6 +122,9 @@ def test_find_library_with_ld(self):
unittest.mock.patch("ctypes.util._findLib_gcc", lambda *args: None):
self.assertNotEqual(find_library('c'), None)
def test_gh114257(self):
self.assertIsNone(find_library("libc"))
if __name__ == "__main__":
unittest.main()

View file

@ -0,0 +1,2 @@
Dismiss the :exc:`FileNotFound` error in :func:`ctypes.util.find_library` and
just return ``None`` on Linux.