diff --git a/CHANGELOG.md b/CHANGELOG.md index c7fe6726913..fe3d8c14923 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,8 +28,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Loosened the lower bound on the `num-complex` optional dependency to support interop with `rust-numpy` and `ndarray` when building with the MSRV of 1.41 [#1799](https://github.com/PyO3/pyo3/pull/1799) -- Add missing `Py_DECREF` to `Python::run_code` which fixes a memory leak when - calling Python from Rust. [#1806](https://github.com/PyO3/pyo3/pull/1806) +- Add missing `Py_DECREF` to `Python::run_code` and `PyModule::from_code` which fixes a memory leak when + calling Python from Rust. [#1806](https://github.com/PyO3/pyo3/pull/1806), [#1810](https://github.com/PyO3/pyo3/pull/1810) ## [0.14.2] - 2021-08-09 diff --git a/src/types/module.rs b/src/types/module.rs index 4d9c43559a2..97bdef366e1 100644 --- a/src/types/module.rs +++ b/src/types/module.rs @@ -126,6 +126,7 @@ impl PyModule { } let mptr = ffi::PyImport_ExecCodeModuleEx(module.as_ptr(), cptr, filename.as_ptr()); + ffi::Py_DECREF(cptr); if mptr.is_null() { return Err(PyErr::api_call_failed(py)); }