From: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Date: Sat, 4 Jul 2026 10:46:47 +0000 (+0200) Subject: [3.14] gh-152851: fix a crash when copying a BLAKE-2s/2b object (GH-153008) (#153012) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d786fbdfcc9d63e0f92df60f464c46ac6b4ce292;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-152851: fix a crash when copying a BLAKE-2s/2b object (GH-153008) (#153012) [3.14] gh-152851: fix a crash when copying a BLAKE-2s/2b object (GH-153008) (cherry picked from commit 5a400ceafbbd4456ac65fbdbcf5d62ce9e8e4f9f) --- diff --git a/Misc/NEWS.d/next/Library/2026-07-04-11-14-06.gh-issue-152851.diYvTf.rst b/Misc/NEWS.d/next/Library/2026-07-04-11-14-06.gh-issue-152851.diYvTf.rst new file mode 100644 index 000000000000..aab033ebeed6 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-07-04-11-14-06.gh-issue-152851.diYvTf.rst @@ -0,0 +1,2 @@ +Prevent a crash when allocation fails while copying a :func:`BLAKE-2s/2b +` object. Patch by Bénédikt Tran. diff --git a/Modules/blake2module.c b/Modules/blake2module.c index e31fa8131f1e..c4fbd204d566 100644 --- a/Modules/blake2module.c +++ b/Modules/blake2module.c @@ -732,6 +732,11 @@ static int blake2_blake2b_copy_locked(Blake2Object *self, Blake2Object *cpy) { assert(cpy != NULL); + + // Ensure that the implementation type is consistent with the HACL* state. + // See https://github.com/python/cpython/issues/152851 for details. + cpy->impl = self->impl; + switch (self->impl) { #if _Py_HACL_CAN_COMPILE_VEC256 case Blake2b_256: { @@ -768,7 +773,6 @@ blake2_blake2b_copy_locked(Blake2Object *self, Blake2Object *cpy) default: Py_UNREACHABLE(); } - cpy->impl = self->impl; return 0; error: