https://github.com/python/cpython/commit/45c6c48afc13f9897010e32171a3e02d0624258c
commit: 45c6c48afc13f9897010e32171a3e02d0624258c
branch: main
author: Jelle Zijlstra <jelle.zijls...@gmail.com>
committer: encukou <encu...@gmail.com>
date: 2025-05-30T11:30:05+02:00
summary:

gh-134885: zstd: Use Py_XSETREF (GH-134886)

files:
A Misc/NEWS.d/next/Library/2025-05-29-06-53-40.gh-issue-134885.-_L22o.rst
M Modules/_zstd/_zstdmodule.c

diff --git 
a/Misc/NEWS.d/next/Library/2025-05-29-06-53-40.gh-issue-134885.-_L22o.rst 
b/Misc/NEWS.d/next/Library/2025-05-29-06-53-40.gh-issue-134885.-_L22o.rst
new file mode 100644
index 00000000000000..4b05d42c109d06
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-05-29-06-53-40.gh-issue-134885.-_L22o.rst
@@ -0,0 +1,2 @@
+Fix possible crash in the :mod:`compression.zstd` module related to setting
+parameter types. Patch by Jelle Zijlstra.
diff --git a/Modules/_zstd/_zstdmodule.c b/Modules/_zstd/_zstdmodule.c
index 5ad697d2b83dd6..986b3579479f0f 100644
--- a/Modules/_zstd/_zstdmodule.c
+++ b/Modules/_zstd/_zstdmodule.c
@@ -514,13 +514,10 @@ _zstd_set_parameter_types_impl(PyObject *module, PyObject 
*c_parameter_type,
         return NULL;
     }
 
-    Py_XDECREF(mod_state->CParameter_type);
-    Py_INCREF(c_parameter_type);
-    mod_state->CParameter_type = (PyTypeObject*)c_parameter_type;
-
-    Py_XDECREF(mod_state->DParameter_type);
-    Py_INCREF(d_parameter_type);
-    mod_state->DParameter_type = (PyTypeObject*)d_parameter_type;
+    Py_XSETREF(
+        mod_state->CParameter_type, 
(PyTypeObject*)Py_NewRef(c_parameter_type));
+    Py_XSETREF(
+        mod_state->DParameter_type, 
(PyTypeObject*)Py_NewRef(d_parameter_type));
 
     Py_RETURN_NONE;
 }

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: arch...@mail-archive.com

Reply via email to