From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 7 Nov 2025 11:10:21 +0000 (+0100) Subject: [3.13] gh-141141: Make base64.b85decode() thread safe (GH-141149) (GH-141185) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=353bfc813b9e3b91c718b217ce30f9f0715a5404;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-141141: Make base64.b85decode() thread safe (GH-141149) (GH-141185) (cherry picked from commit a7bf27f7f521384a8964718bdb58a5cb113bb3ec) Co-authored-by: Benel Tayar <86257734+beneltayar@users.noreply.github.com> --- diff --git a/Lib/base64.py b/Lib/base64.py index 5a7e790a1933..e8bc252ecfa6 100755 --- a/Lib/base64.py +++ b/Lib/base64.py @@ -465,9 +465,12 @@ def b85decode(b): # Delay the initialization of tables to not waste memory # if the function is never called if _b85dec is None: - _b85dec = [None] * 256 + # we don't assign to _b85dec directly to avoid issues when + # multiple threads call this function simultaneously + b85dec_tmp = [None] * 256 for i, c in enumerate(_b85alphabet): - _b85dec[c] = i + b85dec_tmp[c] = i + _b85dec = b85dec_tmp b = _bytes_from_decode_data(b) padding = (-len(b)) % 5 diff --git a/Misc/NEWS.d/next/Library/2025-11-06-15-11-50.gh-issue-141141.tgIfgH.rst b/Misc/NEWS.d/next/Library/2025-11-06-15-11-50.gh-issue-141141.tgIfgH.rst new file mode 100644 index 000000000000..f59ccfb33e76 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-11-06-15-11-50.gh-issue-141141.tgIfgH.rst @@ -0,0 +1 @@ +Fix a thread safety issue with :func:`base64.b85decode`. Contributed by Benel Tayar.