greenlet 3.5.6
- Source
- https://github.com/python-greenlet/greenlet
- Artifact scanned
greenlet-3.5.6.tar.gz- Compared with
greenlet-3.5.5.tar.gz(0 signals introduced since)- Files
- 113 scanned, 19 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 8 info
- Scan time
- 7.1 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 8 of 8 warn and critical signals; 8 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 03:03
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
PyGreenlet* ; ; ;likely benign Debug-only local variable named `main` holding the main greenlet, used in asserts.Reasoning
The declaration `PyGreenlet* main(state->borrow_main_greenlet());` is a local variable named main inside a debug-only assert block. It is a variable declaration, not a recursive call through main, and the snippet shows no recursion. Naming a local 'main' is unusual but harmless; the IOCCC framing does not fit.
-
= # pylint:disable=protected-accesslikely benign Test helper that retrieves its own frame to verify f_back behaviour across greenlet switches.Reasoning
Greenlet test code using sys._getframe(0) to check frame back-links. This is ordinary testing of the greenlet library's frame behaviour, with a pylint disable comment.
-
=likely benign Test inner function sends its frame to the main greenlet.Reasoning
Test code passing the current frame to another greenlet to check frame handling. Legitimate use of sys._getframe in a test suite.
-
likely benign Test outer function passes its frame to inner for a greenlet frame test.
Reasoning
Same pattern: the test passes its own frame to another function to exercise greenlet behaviour. Benign test scaffolding.
-
# critical sections to get suspendedlikely benign Test reads its own source file and discards the contents.Reasoning
The file reads itself with a read and discards the result, with no decoding, execution or payload extraction. The read is part of a test that exercises suspension during critical sections. Flagged as payload extraction, but nothing in the snippet extracts or runs anything.
-
= returnlikely benign Context manager that installs a profile hook to record greenlet switch actions in tests.Reasoning
Tracing test installs itself as a profile function via sys.setprofile and saves the old one, a standard pattern for testing greenlet tracing hooks.
-
likely benign Context manager exit restoring the previous profile hook.
Reasoning
Restores the previous profile function on exit, which is the matching cleanup for the test context manager above.
-
= % =likely benign Test runs setup.py --version through os.popen to read the package version.Reasoning
The command is built from sys.executable and a setup.py path to query the package version, run in a test. The shell is invoked with a runtime string, but the inputs are local and trusted, and it is only a version check. Using os.popen is poor practice, but this is not malicious. The critical severity is overstated.
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|
&&