Replace deprecated os.popen() call with Python's built-in file handling #865
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR refactors the CPU serial reading logic in
tools_views.pyto use Python's native file I/O instead of the deprecatedos.popen()function.What changed:
os.popen("cat /proc/cpuinfo | grep Serial")with direct file reading usingopen()cat,grep)import osWhy this change:
os.popen()has been deprecated since Python 2.6Security context:
Since this code is part of the entropy generation pathway for seed creation in a Bitcoin hardware wallet, eliminating any shell interaction—even with static strings—reduces the attack surface and follows defense-in-depth principles.
This pull request is categorized as a:
Checklist
pytestand made sure all unit tests pass before submitting the PRIf you modified or added functionality/workflow, did you add new unit tests?
I have tested this PR on the following platforms/os:
/proc/cpuinfoverificationTesting methodology:
hash_bytes = b'0') preserved on exceptionsNote: No existing unit tests cover this specific code path (image entropy generation). The refactor maintains identical behavior, so existing integration should work unchanged. I don't currently have access to physical Raspberry Pi hardware, but happy to work with maintainers who have hardware access to validate before merging.
Fixes #856