[PATCH v2] scripts: generate_rust_analyzer.py: avoid FD leak

From: Tamir Duberstein

Date: Tue Jan 27 2026 - 11:55:19 EST


Use `pathlib.Path.read_text()` to avoid leaking file descriptors.

Fixes: 8c4555ccc55c ("scripts: add `generate_rust_analyzer.py`")
Cc: stable@xxxxxxxxxxxxxxx
Reviewed-by: Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx>
Reviewed-by: Fiona Behrens <me@xxxxxxxxxx>
Reviewed-by: Trevor Gross <tmgross@xxxxxxxxx>
Signed-off-by: Tamir Duberstein <tamird@xxxxxxxxxx>
---
Changes in v2:
- Use pathlib.Path.read_text. (Levi Zim)
- Drop errant Tested-by tag. (Miguel Ojeda)
- Link to v1: https://patch.msgid.link/20260122-rust-analyzer-fd-leak-v1-1-945577813b20@xxxxxxxxxx
---
scripts/generate_rust_analyzer.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/scripts/generate_rust_analyzer.py b/scripts/generate_rust_analyzer.py
index 3b645da90092..152bd3705303 100755
--- a/scripts/generate_rust_analyzer.py
+++ b/scripts/generate_rust_analyzer.py
@@ -190,9 +190,10 @@ def generate_crates(srctree, objtree, sysroot_src, external_src, cfgs, core_edit

def is_root_crate(build_file, target):
try:
- return f"{target}.o" in open(build_file).read()
+ contents = build_file.read_text()
except FileNotFoundError:
return False
+ return f"{target}.o" in contents

# Then, the rest outside of `rust/`.
#

---
base-commit: 2af6ad09fc7dfe9b3610100983cccf16998bf34d
change-id: 20260122-rust-analyzer-fd-leak-b247830d666e

Best regards,
--
Tamir Duberstein <tamird@xxxxxxxxxx>