Skip to content

Conversation

@kmichel-aiven
Copy link
Contributor

During the arguments modification to subprocess.Popen.__init__, an explicitly empty environment of {} is incorrectly confused with a None environment. This causes sentry to pass the entire environment of the parent process instead of sending just the injected environment variables.

Fix it by only replacing the environment with os.environ if the variable is None, and not when it's just falsy.


General Notes

Thank you for contributing to sentry-python!

Please add tests to validate your changes, and lint your code using tox -e linters.

Running the test suite on your PR might require maintainer approval. Some tests (AWS Lambda) additionally require a maintainer to add a special label to run and will fail if the label is not present.

For maintainers

Sensitive test suites require maintainer review to ensure that tests do not compromise our secrets. This review must be repeated after any code revisions.

Before running sensitive test suites, please carefully check the PR. Then, apply the Trigger: tests using secrets label. The label will be removed after any code changes to enforce our policy requiring maintainers to review all code revisions before running sensitive tests.

During the arguments modification to `subprocess.Popen.__init__`,
an explicitly empty environment of `{}` is incorrectly confused with a `None`
environment. This causes sentry to pass the entire environment of the
parent process instead of sending just the injected environment variables.

Fix it by only replacing the environment with `os.environ` if the variable
is None, and not just falsy.
@kmichel-aiven kmichel-aiven deleted the kmichel-fix-leak-env-to-subprocess branch July 5, 2024 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant