]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-130052: Fix search_map_for_section() error handling (GH-132594) (#132598)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 16 Apr 2025 14:21:58 +0000 (16:21 +0200)
committerGitHub <noreply@github.com>
Wed, 16 Apr 2025 14:21:58 +0000 (14:21 +0000)
gh-130052: Fix search_map_for_section() error handling (GH-132594)

* Don't call close() if the file descriptor is negative.
* If close() fails, chain the existing exception.
(cherry picked from commit 014c7f90478780b18d0e33d456483178c8dcc665)

Co-authored-by: Victor Stinner <vstinner@python.org>
Modules/_testexternalinspection.c

index 2a665affb5e7f817b4c563a41e71a461e32cd927..2ed79f317b041799177bec6bdbb68404688c4101 100644 (file)
@@ -345,8 +345,10 @@ get_py_runtime_linux(pid_t pid)
     }
 
 exit:
-    if (close(fd) != 0) {
+    if (fd >= 0 && close(fd) != 0) {
+        PyObject *exc = PyErr_GetRaisedException();
         PyErr_SetFromErrno(PyExc_OSError);
+        _PyErr_ChainExceptions1(exc);
     }
     if (file_memory != NULL) {
         munmap(file_memory, file_stats.st_size);