From unknown Tue Aug 19 02:58:33 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#46771] [PATCH] gnu: Python 3.9: Update to 3.9.2. Resent-From: Greg Hogan Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 25 Feb 2021 14:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 46771 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 46771@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161426403411853 (code B ref -1); Thu, 25 Feb 2021 14:41:02 +0000 Received: (at submit) by debbugs.gnu.org; 25 Feb 2021 14:40:34 +0000 Received: from localhost ([127.0.0.1]:37134 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFHoZ-00034v-Ng for submit@debbugs.gnu.org; Thu, 25 Feb 2021 09:40:34 -0500 Received: from lists.gnu.org ([209.51.188.17]:60754) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFHoX-00034n-It for submit@debbugs.gnu.org; Thu, 25 Feb 2021 09:40:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36718) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lFHoX-00059m-AV for guix-patches@gnu.org; Thu, 25 Feb 2021 09:40:25 -0500 Received: from mail-io1-xd2f.google.com ([2607:f8b0:4864:20::d2f]:45800) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lFHoU-0008Ty-40 for guix-patches@gnu.org; Thu, 25 Feb 2021 09:40:25 -0500 Received: by mail-io1-xd2f.google.com with SMTP id a7so6046046iok.12 for ; Thu, 25 Feb 2021 06:40:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=greghogan-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=f7djETXqVSm7OaE4HH6bj6IMxpR1BVT6crkJsS94olI=; b=AsOQY2imq8aSQwnLzqpt+ZpEj1pFQlb17vu6bYhz38xKUMLlWD/QnO3LZvMjlEHipj Ma7s5KL73bVWpJbWCwBYaXPVDOrY+eJI92Q674vrs9xJVAUIepVLzV1vLNaMh+mOyAyb +3zKgLpfdwbE1Ld4zHfR2fHngQiZ3IZS/QgJW2Y9KqvZXFiMqfhEmuIVqwH83nN9kMz8 4Vz1tUU2/5Xy3PYpAQtKomev3oHr6cfqyxbWnKb6vRhvgX8PfADcluKHCUu0cjKWH+8F mryyVyBFCRA97yzsBIkF32MMjfN6Kp4hzlZ9BufRHeL961ldKLlaSu8Wc6XRCgyw5MVn nf6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=f7djETXqVSm7OaE4HH6bj6IMxpR1BVT6crkJsS94olI=; b=r6NVp1IJEhvD0S0Yf1tPXFXXEqpNc19JxAvDmRYHttGz54mjoFTN4cY1xvx7Q9nZY+ PUNvxa02Kl68lgqXLmxNs+XhgvEioQVwEqaG7G7KaH5tisl+77MThoXfQHQFGeusSFp0 CntucXEzvBKD5cy6FlE36WRsuplAYLX7F9162XCjtGJDm//VlWU23bqpZZlT4E96XhaX 4VqBYOlLRBYj6NDifA18jifvndYrpMuG3JDh68sH06WNn2scdjNu94ByFye+VbcfNYUI X+9KBG/mxgxqNTk3F0jMzoK6stwMUovrmQyVm+Hj4pI6UZG+JNm8kPLbzQ3EVZ2q2pPW n9lQ== X-Gm-Message-State: AOAM531d61F799YPeJO9rrkjytdzB4it1vu3dCW46vFRDOeW0gq+zVHF cKe24yAmwvE/U75GqcTvWVpiWlJZ72p31xZYdraLKDdPX1dWp97e X-Google-Smtp-Source: ABdhPJwTS9vaKby25v8hgDiCCGeAMuTEa+ju0aGy5E8OFOyXaahkgMeZweSfZVCNxCwwbaNSmgytHW5FVsMY9bFuqss= X-Received: by 2002:a05:6638:22cd:: with SMTP id j13mr3473614jat.52.1614264020666; Thu, 25 Feb 2021 06:40:20 -0800 (PST) MIME-Version: 1.0 From: Greg Hogan Date: Thu, 25 Feb 2021 09:40:09 -0500 Message-ID: Content-Type: multipart/mixed; boundary="00000000000086ed2605bc2a2116" Received-SPF: none client-ip=2607:f8b0:4864:20::d2f; envelope-from=code@greghogan.com; helo=mail-io1-xd2f.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --00000000000086ed2605bc2a2116 Content-Type: multipart/alternative; boundary="00000000000086ed2305bc2a2114" --00000000000086ed2305bc2a2114 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable >From 7388fdcc629074e80ad88714a22f5eb5e8e5fd35 Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Wed, 24 Feb 2021 14:12:28 +0000 Subject: [PATCH] gnu: Python 3.9: Update to 3.9.2. * gnu/packages/python.scm (python-3.9): Update to 3.9.2. * gnu/packages/patches/python-3.9-CVE-2021-3177.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it. --- gnu/local.mk | 1 - .../patches/python-3.9-CVE-2021-3177.patch | 194 ------------------ gnu/packages/python.scm | 6 +- 3 files changed, 3 insertions(+), 198 deletions(-) delete mode 100644 gnu/packages/patches/python-3.9-CVE-2021-3177.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8d46cda639..8d1465158a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1526,7 +1526,6 @@ dist_patch_DATA =3D \ %D%/packages/patches/python-3.8-fix-tests.patch \ %D%/packages/patches/python-3.8-CVE-2021-3177.patch \ %D%/packages/patches/python-3.9-fix-tests.patch \ - %D%/packages/patches/python-3.9-CVE-2021-3177.patch \ %D%/packages/patches/python-CVE-2018-14647.patch \ %D%/packages/patches/python-CVE-2020-26116.patch \ %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ diff --git a/gnu/packages/patches/python-3.9-CVE-2021-3177.patch b/gnu/packages/patches/python-3.9-CVE-2021-3177.patch deleted file mode 100644 index 155f17deca..0000000000 --- a/gnu/packages/patches/python-3.9-CVE-2021-3177.patch +++ /dev/null @@ -1,194 +0,0 @@ -Fix CVE-2021-3177 for Python 3.9: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2021-3177 - -Patch copied from upstream source repository: - - https://github.com/python/cpython/commit/c347cbe694743cee120457aa6626712f77= 99a932 - -From c347cbe694743cee120457aa6626712f7799a932 Mon Sep 17 00:00:00 2001 -From: "Miss Islington (bot)" - <31488909+miss-islington@users.noreply.github.com> -Date: Mon, 18 Jan 2021 13:29:31 -0800 -Subject: [PATCH] closes bpo-42938: Replace snprintf with Python unicode - formatting in ctypes param reprs. (GH-24247) - -(cherry picked from commit 916610ef90a0d0761f08747f7b0905541f0977c7) - -Co-authored-by: Benjamin Peterson - -Co-authored-by: Benjamin Peterson ---- - Lib/ctypes/test/test_parameters.py | 43 ++++++++++++++++ - .../2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst | 2 + - Modules/_ctypes/callproc.c | 51 +++++++------------ - 3 files changed, 64 insertions(+), 32 deletions(-) - create mode 100644 Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst - -diff --git a/Lib/ctypes/test/test_parameters.py b/Lib/ctypes/test/test_parameters.py -index e4c25fd880cef..531894fdec838 100644 ---- a/Lib/ctypes/test/test_parameters.py -+++ b/Lib/ctypes/test/test_parameters.py -@@ -201,6 +201,49 @@ def __dict__(self): - with self.assertRaises(ZeroDivisionError): - WorseStruct().__setstate__({}, b'foo') - -+ def test_parameter_repr(self): -+ from ctypes import ( -+ c_bool, -+ c_char, -+ c_wchar, -+ c_byte, -+ c_ubyte, -+ c_short, -+ c_ushort, -+ c_int, -+ c_uint, -+ c_long, -+ c_ulong, -+ c_longlong, -+ c_ulonglong, -+ c_float, -+ c_double, -+ c_longdouble, -+ c_char_p, -+ c_wchar_p, -+ c_void_p, -+ ) -+ self.assertRegex(repr(c_bool.from_param(True)), r"^$") -+ self.assertEqual(repr(c_char.from_param(97)), "") -+ self.assertRegex(repr(c_wchar.from_param('a')), r"^$") -+ self.assertEqual(repr(c_byte.from_param(98)), ""= ) -+ self.assertEqual(repr(c_ubyte.from_param(98)), "") -+ self.assertEqual(repr(c_short.from_param(511)), "") -+ self.assertEqual(repr(c_ushort.from_param(511)), "") -+ self.assertRegex(repr(c_int.from_param(20000)), r"^$") -+ self.assertRegex(repr(c_uint.from_param(20000)), r"^$") -+ self.assertRegex(repr(c_long.from_param(20000)), r"^$") -+ self.assertRegex(repr(c_ulong.from_param(20000)), r"^$") -+ self.assertRegex(repr(c_longlong.from_param(20000)), r"^$") -+ self.assertRegex(repr(c_ulonglong.from_param(20000)), r"^$") -+ self.assertEqual(repr(c_float.from_param(1.5)), "") -+ self.assertEqual(repr(c_double.from_param(1.5)), "") -+ self.assertEqual(repr(c_double.from_param(1e300)), "") -+ self.assertRegex(repr(c_longdouble.from_param(1.5)), r"^$") -+ self.assertRegex(repr(c_char_p.from_param(b'hihi')), "^$") -+ self.assertRegex(repr(c_wchar_p.from_param('hihi')), "^$") -+ self.assertRegex(repr(c_void_p.from_param(0x12)), r"^$") -+ - ################################################################ - - if __name__ =3D=3D '__main__': -diff --git a/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst -new file mode 100644 -index 0000000000000..7df65a156feab ---- /dev/null -+++ b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst -@@ -0,0 +1,2 @@ -+Avoid static buffers when computing the repr of :class:`ctypes.c_double` and -+:class:`ctypes.c_longdouble` values. -diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c -index b0a36a30248f7..f2506de54498e 100644 ---- a/Modules/_ctypes/callproc.c -+++ b/Modules/_ctypes/callproc.c -@@ -489,58 +489,47 @@ is_literal_char(unsigned char c) - static PyObject * - PyCArg_repr(PyCArgObject *self) - { -- char buffer[256]; - switch(self->tag) { - case 'b': - case 'B': -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, self->value.b); -- break; - case 'h': - case 'H': -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, self->value.h); -- break; - case 'i': - case 'I': -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, self->value.i); -- break; - case 'l': - case 'L': -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, self->value.l); -- break; - - case 'q': - case 'Q': -- sprintf(buffer, --#ifdef MS_WIN32 -- "", --#else -- "", --#endif -+ return PyUnicode_FromFormat("", - self->tag, self->value.q); -- break; - case 'd': -- sprintf(buffer, "", -- self->tag, self->value.d); -- break; -- case 'f': -- sprintf(buffer, "", -- self->tag, self->value.f); -- break; -- -+ case 'f': { -+ PyObject *f =3D PyFloat_FromDouble((self->tag =3D=3D 'f') ? self->value.f : self->value.d); -+ if (f =3D=3D NULL) { -+ return NULL; -+ } -+ PyObject *result =3D PyUnicode_FromFormat("", self->tag, f); -+ Py_DECREF(f); -+ return result; -+ } - case 'c': - if (is_literal_char((unsigned char)self->value.c)) { -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, self->value.c); - } - else { -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, (unsigned char)self->value.c); - } -- break; - - /* Hm, are these 'z' and 'Z' codes useful at all? - Shouldn't they be replaced by the functionality of c_string -@@ -549,22 +538,20 @@ PyCArg_repr(PyCArgObject *self) - case 'z': - case 'Z': - case 'P': -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - self->tag, self->value.p); - break; - - default: - if (is_literal_char((unsigned char)self->tag)) { -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - (unsigned char)self->tag, (void *)self); - } - else { -- sprintf(buffer, "", -+ return PyUnicode_FromFormat("", - (unsigned char)self->tag, (void *)self); - } -- break; - } -- return PyUnicode_FromString(buffer); - } - - static PyMemberDef PyCArgType_members[] =3D { diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 5c5be0d78c..9d97050c66 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -59,6 +59,7 @@ ;;; Copyright =C2=A9 2018 Vagrant Cascadian ;;; Copyright =C2=A9 2019 Tanguy Le Carrour ;;; Copyright =C2=A9 2020 Jan (janneke) Nieuwenhuizen +;;; Copyright =C2=A9 2021 Greg Hogan ;;; ;;; This file is part of GNU Guix. ;;; @@ -533,19 +534,18 @@ data types.") (define-public python-3.9 (package (inherit python-3.8) (name "python-next") - (version "3.9.1") + (version "3.9.2") (source (origin (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) (patches (search-patches "python-3.9-fix-tests.patch" - "python-3.9-CVE-2021-3177.patch" "python-3-deterministic-build-info.patch" "python-3-search-paths.patch")) (sha256 (base32 - "1zq3k4ymify5ig739zyvx9s2ainvchxb1zpy139z74krr653y74r")) + "0z94vv5qhlwvcgc4sy9sdiqs0220s84wx3b62vslh5419z2k881w")) (modules '((guix build utils))) (snippet '(begin --=20 2.30.1 --00000000000086ed2305bc2a2114 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
From 7388fdcc629074e80ad88714a22f5eb= 5e8e5fd35 Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: W= ed, 24 Feb 2021 14:12:28 +0000
Subject: [PATCH] gnu: Python 3.9: = Update to 3.9.2.

* gnu/packages/python.scm (python= -3.9): Update to 3.9.2.
* gnu/packages/patches/python-3.9-CVE-202= 1-3177.patch: Delete file.
* gnu/loca= l.mk (dist_patch_DATA): Remove it.
---
=C2=A0gnu/local.mk =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0| =C2=A0 1 -
=C2=A0.../patches/python-3.9-CVE-2021-3177= .patch =C2=A0 =C2=A0| 194 ------------------
=C2=A0gnu/packages/p= ython.scm =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 | =C2=A0 6 +-
=C2=A03 files changed, 3 insertions(+= ), 198 deletions(-)
=C2=A0delete mode 100644 gnu/packages/patches= /python-3.9-CVE-2021-3177.patch

diff --git a/gnu/<= a href=3D"http://local.mk">local.mk b/gnu/l= ocal.mk
index 8d46cda639..8d1465158a 100644
--- a/g= nu/local.mk
+++ b/gnu/local.mk
@@ -1526,7 +1526,6 @@ dist_patch_DA= TA =3D = \
=C2=A0 =C2=A0%D%/packages/patches/python-3.8-fix-tests.p= atch \
=C2=A0 =C2=A0%D%/packages/patches/python-3.8-CVE-2021-3177.pat= ch \=
=C2=A0 =C2=A0%D%/packages/patches/python-3.9-fix-tests.patch \
=
- =C2=A0%D%/packages/patches/python-3.9-CVE-2021-3177.patch \
= =C2=A0 =C2=A0%D%/packages/patches/python-CVE-2018-14647.patch \
=C2= =A0 =C2=A0%D%/packages/patches/python-CVE-2020-26116.patch \
=C2=A0 = =C2=A0%D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \
diff -= -git a/gnu/packages/patches/python-3.9-CVE-2021-3177.patch b/gnu/packages/p= atches/python-3.9-CVE-2021-3177.patch
deleted file mode 100644
index 155f17deca..0000000000
--- a/gnu/packages/patches/p= ython-3.9-CVE-2021-3177.patch
+++ /dev/null
@@ -1,194 += 0,0 @@
-Fix CVE-2021-3177 for Python 3.9:
-
-
-Patch copied from upstream source repository:
-
-
-From c347cbe6= 94743cee120457aa6626712f7799a932 Mon Sep 17 00:00:00 2001
-From: = "Miss Islington (bot)"
-Date: Mon, 18 Jan 2021 13:29:31 -0800<= /div>
-Subject: [PATCH] closes bpo-42938: Replace snprintf with Python = unicode
- formatting in ctypes param reprs. (GH-24247)
= -
-(cherry picked from commit 916610ef90a0d0761f08747f7b0905541f0= 977c7)
-
-Co-authored-by: Benjamin Peterson <benjamin@python.org>
-
-Co-authored-by: Benjamin Peterson <benjamin@python.org>
----
- Lib/ctypes= /test/test_parameters.py =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 43 ++++= ++++++++++++
- .../2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst =C2= =A0| =C2=A02 +
- Modules/_ctypes/callproc.c =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| 51 +++++++------------
- 3 files changed, 64 insertions(+), 32 deletions(-)
- cr= eate mode 100644 Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Z= n4Mp.rst
-
-diff --git a/Lib/ctypes/test/test_parameter= s.py b/Lib/ctypes/test/test_parameters.py
-index e4c25fd880cef..5= 31894fdec838 100644
---- a/Lib/ctypes/test/test_parameters.py
-+++ b/Lib/ctypes/test/test_parameters.py
-@@ -201,6 +201,= 49 @@ def __dict__(self):
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 with self= .assertRaises(ZeroDivisionError):
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 WorseStruct().__setstate__({}, b'foo')
-=C2= =A0
-+ =C2=A0 =C2=A0def test_parameter_repr(self):
-+ = =C2=A0 =C2=A0 =C2=A0 =C2=A0from ctypes import (
-+ =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0c_bool,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0c_char,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0c_wchar,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_byte,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_ubyte,
-+ = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_short,
-+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_ushort,
-+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0c_int,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0c_uint,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_long,=
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_ulong,
-= + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_longlong,
-+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_ulonglong,
-+ =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0c_float,
-+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0c_double,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0c_longdouble,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c= _char_p,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_wchar_p,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0c_void_p,
-+= =C2=A0 =C2=A0 =C2=A0 =C2=A0)
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.= assertRegex(repr(c_bool.from_param(True)), r"^<cparam '\?' = at 0x[A-Fa-f0-9]+>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.= assertEqual(repr(c_char.from_param(97)), "<cparam 'c' ('= ;a')>")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertRege= x(repr(c_wchar.from_param('a')), r"^<cparam 'u' at = 0x[A-Fa-f0-9]+>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.ass= ertEqual(repr(c_byte.from_param(98)), "<cparam 'b' (98)>= ")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertEqual(repr(c_uby= te.from_param(98)), "<cparam 'B' (98)>")
= -+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertEqual(repr(c_short.from_param(511)= ), "<cparam 'h' (511)>")
-+ =C2=A0 =C2=A0= =C2=A0 =C2=A0self.assertEqual(repr(c_ushort.from_param(511)), "<cp= aram 'H' (511)>")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0s= elf.assertRegex(repr(c_int.from_param(20000)), r"^<cparam '[li]= ' \(20000\)>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.as= sertRegex(repr(c_uint.from_param(20000)), r"^<cparam '[LI]'= \(20000\)>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertR= egex(repr(c_long.from_param(20000)), r"^<cparam '[li]' \(20= 000\)>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertRegex(= repr(c_ulong.from_param(20000)), r"^<cparam '[LI]' \(20000\= )>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertRegex(repr= (c_longlong.from_param(20000)), r"^<cparam '[liq]' \(20000\= )>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertRegex(repr= (c_ulonglong.from_param(20000)), r"^<cparam '[LIQ]' \(20000= \)>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertEqual(rep= r(c_float.from_param(1.5)), "<cparam 'f' (1.5)>")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertEqual(repr(c_double.from_= param(1.5)), "<cparam 'd' (1.5)>")
-+ =C2= =A0 =C2=A0 =C2=A0 =C2=A0self.assertEqual(repr(c_double.from_param(1e300)), = "<cparam 'd' (1e+300)>")
-+ =C2=A0 =C2=A0= =C2=A0 =C2=A0self.assertRegex(repr(c_longdouble.from_param(1.5)), r"^= <cparam ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$")<= /div>
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertRegex(repr(c_char_p.from= _param(b'hihi')), "^<cparam 'z' \(0x[A-Fa-f0-9]+\)&= gt;$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assertRegex(repr(c= _wchar_p.from_param('hihi')), "^<cparam 'Z' \(0x[A-= Fa-f0-9]+\)>$")
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0self.assert= Regex(repr(c_void_p.from_param(0x12)), r"^<cparam 'P' \(0x0= *12\)>$")
-+
- ################################= ################################
-=C2=A0
- if __name__ = =3D=3D '__main__':
-diff --git a/Misc/NEWS.d/next/Securit= y/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst b/Misc/NEWS.d/next/Security/2021= -01-18-09-27-31.bpo-42938.4Zn4Mp.rst
-new file mode 100644
<= div>-index 0000000000000..7df65a156feab
---- /dev/null
= -+++ b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst
-@@ -0,0 +1,2 @@
-+Avoid static buffers when computing t= he repr of :class:`ctypes.c_double` and
-+:class:`ctypes.c_longdo= uble` values.
-diff --git a/Modules/_ctypes/callproc.c b/Modules/= _ctypes/callproc.c
-index b0a36a30248f7..f2506de54498e 100644
---- a/Modules/_ctypes/callproc.c
-+++ b/Modules/_ctypes/c= allproc.c
-@@ -489,58 +489,47 @@ is_literal_char(unsigned char c)=
- static PyObject *
- PyCArg_repr(PyCArgObject *self)<= /div>
- {
-- =C2=A0 =C2=A0char buffer[256];
- =C2= =A0 =C2=A0 switch(self->tag) {
- =C2=A0 =C2=A0 case 'b'= ;:
- =C2=A0 =C2=A0 case 'B':
-- =C2=A0 =C2=A0 = =C2=A0 =C2=A0sprintf(buffer, "<cparam '%c' (%d)>",<= /div>
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFormat("&= lt;cparam '%c' (%d)>",
- =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 self->tag, self->value.b);
-- =C2=A0 =C2= =A0 =C2=A0 =C2=A0break;
- =C2=A0 =C2=A0 case 'h':
- =C2=A0 =C2=A0 case 'H':
-- =C2=A0 =C2=A0 =C2=A0 =C2= =A0sprintf(buffer, "<cparam '%c' (%d)>",
= -+ =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFormat("<cparam = '%c' (%d)>",
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 self->tag, self->value.h);
-- =C2=A0 =C2=A0 =C2=A0 = =C2=A0break;
- =C2=A0 =C2=A0 case 'i':
- =C2=A0= =C2=A0 case 'I':
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0sprintf(b= uffer, "<cparam '%c' (%d)>",
-+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFormat("<cparam '%c= 9; (%d)>",
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 se= lf->tag, self->value.i);
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0brea= k;
- =C2=A0 =C2=A0 case 'l':
- =C2=A0 =C2=A0 ca= se 'L':
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0sprintf(buffer, &qu= ot;<cparam '%c' (%ld)>",
-+ =C2=A0 =C2=A0 =C2= =A0 =C2=A0return PyUnicode_FromFormat("<cparam '%c' (%ld)&g= t;",
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 self->ta= g, self->value.l);
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
<= div>-=C2=A0
- =C2=A0 =C2=A0 case 'q':
- =C2=A0 = =C2=A0 case 'Q':
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0sprintf(bu= ffer,
--#ifdef MS_WIN32
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0"<cparam '%c' (%I64d)>",
--#= else
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"<cparam= '%c' (%lld)>",
--#endif
-+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0return PyUnicode_FromFormat("<cparam '%c' = (%lld)>",
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 sel= f->tag, self->value.q);
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0break= ;
- =C2=A0 =C2=A0 case 'd':
-- =C2=A0 =C2=A0 = =C2=A0 =C2=A0sprintf(buffer, "<cparam '%c' (%f)>",<= /div>
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0self->tag, self-&g= t;value.d);
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
-- =C2= =A0 =C2=A0case 'f':
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0sprintf= (buffer, "<cparam '%c' (%f)>",
-- =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0self->tag, self->value.f);
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
--
-+ =C2=A0 =C2= =A0case 'f': {
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0PyObject *f = =3D PyFloat_FromDouble((self->tag =3D=3D 'f') ? self->value.f= : self->value.d);
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0if (f =3D=3D = NULL) {
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return NULL;<= /div>
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0}
-+ =C2=A0 =C2=A0 =C2=A0= =C2=A0PyObject *result =3D PyUnicode_FromFormat("<cparam '%c&#= 39; (%R)>", self->tag, f);
-+ =C2=A0 =C2=A0 =C2=A0 =C2= =A0Py_DECREF(f);
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0return result;
-+ =C2=A0 =C2=A0}
- =C2=A0 =C2=A0 case 'c':
<= div>- =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (is_literal_char((unsigned char)self-&= gt;value.c)) {
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sprint= f(buffer, "<cparam '%c' ('%c')>",
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFormat(&q= uot;<cparam '%c' ('%c')>",
- =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 self->tag, self->val= ue.c);
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
- =C2=A0 =C2=A0 = =C2=A0 =C2=A0 else {
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= sprintf(buffer, "<cparam '%c' ('\\x%02x')>"= ,
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_Fr= omFormat("<cparam '%c' ('\\x%02x')>",
=
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 self->tag= , (unsigned char)self->value.c);
- =C2=A0 =C2=A0 =C2=A0 =C2=A0= }
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0break;
-=C2=A0
- /* Hm, are these 'z' and 'Z' codes useful at all?
- =C2=A0 =C2=A0Shouldn't they be replaced by the functionality of= c_string
-@@ -549,22 +538,20 @@ PyCArg_repr(PyCArgObject *self)<= /div>
- =C2=A0 =C2=A0 case 'z':
- =C2=A0 =C2=A0 case = 'Z':
- =C2=A0 =C2=A0 case 'P':
-- =C2= =A0 =C2=A0 =C2=A0 =C2=A0sprintf(buffer, "<cparam '%c' (%p)&= gt;",
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFor= mat("<cparam '%c' (%p)>",
- =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 self->tag, self->value.p);
- = =C2=A0 =C2=A0 =C2=A0 =C2=A0 break;
-=C2=A0
- =C2=A0 =C2= =A0 default:
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (is_literal_char((u= nsigned char)self->tag)) {
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0sprintf(buffer, "<cparam '%c' at %p>",
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFo= rmat("<cparam '%c' at %p>",
- =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (unsigned char)self->tag, = (void *)self);
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
- =C2=A0= =C2=A0 =C2=A0 =C2=A0 else {
-- =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0sprintf(buffer, "<cparam 0x%02x at %p>",
-+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return PyUnicode_FromFormat(&= quot;<cparam 0x%02x at %p>",
- =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (unsigned char)self->tag, (void *)sel= f);
- =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
-- =C2=A0 =C2=A0 = =C2=A0 =C2=A0break;
- =C2=A0 =C2=A0 }
-- =C2=A0 =C2=A0r= eturn PyUnicode_FromString(buffer);
- }
-=C2=A0
- static PyMemberDef PyCArgType_members[] =3D {
diff --git a/g= nu/packages/python.scm b/gnu/packages/python.scm
index 5c5be0d78c= ..9d97050c66 100644
--- a/gnu/packages/python.scm
+++ b= /gnu/packages/python.scm
@@ -59,6 +59,7 @@
=C2=A0;;; Co= pyright =C2=A9 2018 Vagrant Cascadian <vagrant@debian.org>
=C2=A0;;; Copyright =C2=A9 2019 T= anguy Le Carrour <tanguy@bionela= nd.org>
=C2=A0;;; Copyright =C2=A9 2020 Jan (janneke) Nieu= wenhuizen <janneke@gnu.org>
+;;; Copyright =C2=A9 2021 Greg Hogan <code@greghogan.com>
=C2=A0;;;
=C2= =A0;;; This file is part of GNU Guix.
=C2=A0;;;
@@ -533= ,19 +534,18 @@ data types.")
=C2=A0(define-public python-3.9=
=C2=A0 =C2=A0(package (inherit python-3.8)
=C2=A0 =C2= =A0 =C2=A0(name "python-next")
- =C2=A0 =C2=A0(version = "3.9.1")
+ =C2=A0 =C2=A0(version "3.9.2")
=C2=A0 =C2=A0 =C2=A0(source (origin
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(method url-fetch)
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(uri (string-append "https://www.python.org/ftp/pytho= n/"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ve= rsion "/Python-" version ".tar.xz"))
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(patches (search-patches
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0"python-3.9-fix-tests.patch"
- = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0"python-3.9-CVE-2021-3177.patch"
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0"python-3-deterministic-build-info.patch"
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0"python-3-search-paths.patch"))
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(sha256
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (base32
- =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"1zq3k4ymify5ig739zyvx9s2ain= vchxb1zpy139z74krr653y74r"))
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0"0z94vv5qhlwvcgc4sy9sdiqs0220s84wx3b62vslh5= 419z2k881w"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0(modules '((guix build utils)))
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(snippet
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 '(begin
--=C2=A0
=
2.30.1
--00000000000086ed2305bc2a2114-- --00000000000086ed2605bc2a2116 Content-Type: application/octet-stream; name="0001-gnu-Python-3.9-Update-to-3.9.2.patch" Content-Disposition: attachment; filename="0001-gnu-Python-3.9-Update-to-3.9.2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_klkz2mj40 RnJvbSA3Mzg4ZmRjYzYyOTA3NGU4MGFkODg3MTRhMjJmNWViNWU4ZTVmZDM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEhvZ2FuIDxjb2RlQGdyZWdob2dhbi5jb20+CkRhdGU6 IFdlZCwgMjQgRmViIDIwMjEgMTQ6MTI6MjggKzAwMDAKU3ViamVjdDogW1BBVENIXSBnbnU6IFB5 dGhvbiAzLjk6IFVwZGF0ZSB0byAzLjkuMi4KCiogZ251L3BhY2thZ2VzL3B5dGhvbi5zY20gKHB5 dGhvbi0zLjkpOiBVcGRhdGUgdG8gMy45LjIuCiogZ251L3BhY2thZ2VzL3BhdGNoZXMvcHl0aG9u LTMuOS1DVkUtMjAyMS0zMTc3LnBhdGNoOiBEZWxldGUgZmlsZS4KKiBnbnUvbG9jYWwubWsgKGRp c3RfcGF0Y2hfREFUQSk6IFJlbW92ZSBpdC4KLS0tCiBnbnUvbG9jYWwubWsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogLi4uL3BhdGNoZXMvcHl0aG9uLTMuOS1DVkUt MjAyMS0zMTc3LnBhdGNoICAgIHwgMTk0IC0tLS0tLS0tLS0tLS0tLS0tLQogZ251L3BhY2thZ2Vz L3B5dGhvbi5zY20gICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiAzIGZpbGVzIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTk4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0 IGdudS9wYWNrYWdlcy9wYXRjaGVzL3B5dGhvbi0zLjktQ1ZFLTIwMjEtMzE3Ny5wYXRjaAoKZGlm ZiAtLWdpdCBhL2dudS9sb2NhbC5tayBiL2dudS9sb2NhbC5tawppbmRleCA4ZDQ2Y2RhNjM5Li44 ZDE0NjUxNThhIDEwMDY0NAotLS0gYS9nbnUvbG9jYWwubWsKKysrIGIvZ251L2xvY2FsLm1rCkBA IC0xNTI2LDcgKzE1MjYsNiBAQCBkaXN0X3BhdGNoX0RBVEEgPQkJCQkJCVwKICAgJUQlL3BhY2th Z2VzL3BhdGNoZXMvcHl0aG9uLTMuOC1maXgtdGVzdHMucGF0Y2gJCVwKICAgJUQlL3BhY2thZ2Vz L3BhdGNoZXMvcHl0aG9uLTMuOC1DVkUtMjAyMS0zMTc3LnBhdGNoCQlcCiAgICVEJS9wYWNrYWdl cy9wYXRjaGVzL3B5dGhvbi0zLjktZml4LXRlc3RzLnBhdGNoCQlcCi0gICVEJS9wYWNrYWdlcy9w YXRjaGVzL3B5dGhvbi0zLjktQ1ZFLTIwMjEtMzE3Ny5wYXRjaAkJXAogICAlRCUvcGFja2FnZXMv cGF0Y2hlcy9weXRob24tQ1ZFLTIwMTgtMTQ2NDcucGF0Y2gJCVwKICAgJUQlL3BhY2thZ2VzL3Bh dGNoZXMvcHl0aG9uLUNWRS0yMDIwLTI2MTE2LnBhdGNoCQlcCiAgICVEJS9wYWNrYWdlcy9wYXRj aGVzL3B5dGhvbi1haW9ub3RpZnktMC4yLjAtcHkzLjgucGF0Y2gJXApkaWZmIC0tZ2l0IGEvZ251 L3BhY2thZ2VzL3BhdGNoZXMvcHl0aG9uLTMuOS1DVkUtMjAyMS0zMTc3LnBhdGNoIGIvZ251L3Bh Y2thZ2VzL3BhdGNoZXMvcHl0aG9uLTMuOS1DVkUtMjAyMS0zMTc3LnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAxNTVmMTdkZWNhLi4wMDAwMDAwMDAwCi0tLSBhL2dudS9wYWNr YWdlcy9wYXRjaGVzL3B5dGhvbi0zLjktQ1ZFLTIwMjEtMzE3Ny5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDE5NCArMCwwIEBACi1GaXggQ1ZFLTIwMjEtMzE3NyBmb3IgUHl0aG9uIDMuOToKLQot aHR0cHM6Ly9jdmUubWl0cmUub3JnL2NnaS1iaW4vY3ZlbmFtZS5jZ2k/bmFtZT1DVkUtMjAyMS0z MTc3Ci0KLVBhdGNoIGNvcGllZCBmcm9tIHVwc3RyZWFtIHNvdXJjZSByZXBvc2l0b3J5OgotCi1o dHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2NweXRob24vY29tbWl0L2MzNDdjYmU2OTQ3NDNjZWUx MjA0NTdhYTY2MjY3MTJmNzc5OWE5MzIKLQotRnJvbSBjMzQ3Y2JlNjk0NzQzY2VlMTIwNDU3YWE2 NjI2NzEyZjc3OTlhOTMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIk1pc3MgSXNs aW5ndG9uIChib3QpIgotIDwzMTQ4ODkwOSttaXNzLWlzbGluZ3RvbkB1c2Vycy5ub3JlcGx5Lmdp dGh1Yi5jb20+Ci1EYXRlOiBNb24sIDE4IEphbiAyMDIxIDEzOjI5OjMxIC0wODAwCi1TdWJqZWN0 OiBbUEFUQ0hdIGNsb3NlcyBicG8tNDI5Mzg6IFJlcGxhY2Ugc25wcmludGYgd2l0aCBQeXRob24g dW5pY29kZQotIGZvcm1hdHRpbmcgaW4gY3R5cGVzIHBhcmFtIHJlcHJzLiAoR0gtMjQyNDcpCi0K LShjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDkxNjYxMGVmOTBhMGQwNzYxZjA4NzQ3ZjdiMDkw NTU0MWYwOTc3YzcpCi0KLUNvLWF1dGhvcmVkLWJ5OiBCZW5qYW1pbiBQZXRlcnNvbiA8YmVuamFt aW5AcHl0aG9uLm9yZz4KLQotQ28tYXV0aG9yZWQtYnk6IEJlbmphbWluIFBldGVyc29uIDxiZW5q YW1pbkBweXRob24ub3JnPgotLS0tCi0gTGliL2N0eXBlcy90ZXN0L3Rlc3RfcGFyYW1ldGVycy5w eSAgICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKwotIC4uLi8yMDIxLTAxLTE4LTA5LTI3 LTMxLmJwby00MjkzOC40Wm40TXAucnN0ICB8ICAyICsKLSBNb2R1bGVzL19jdHlwZXMvY2FsbHBy b2MuYyAgICAgICAgICAgICAgICAgICAgfCA1MSArKysrKysrLS0tLS0tLS0tLS0tCi0gMyBmaWxl cyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9k ZSAxMDA2NDQgTWlzYy9ORVdTLmQvbmV4dC9TZWN1cml0eS8yMDIxLTAxLTE4LTA5LTI3LTMxLmJw by00MjkzOC40Wm40TXAucnN0Ci0KLWRpZmYgLS1naXQgYS9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9w YXJhbWV0ZXJzLnB5IGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfcGFyYW1ldGVycy5weQotaW5kZXgg ZTRjMjVmZDg4MGNlZi4uNTMxODk0ZmRlYzgzOCAxMDA2NDQKLS0tLSBhL0xpYi9jdHlwZXMvdGVz dC90ZXN0X3BhcmFtZXRlcnMucHkKLSsrKyBiL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3BhcmFtZXRl cnMucHkKLUBAIC0yMDEsNiArMjAxLDQ5IEBAIGRlZiBfX2RpY3RfXyhzZWxmKToKLSAgICAgICAg IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgotICAgICAgICAgICAg IFdvcnNlU3RydWN0KCkuX19zZXRzdGF0ZV9fKHt9LCBiJ2ZvbycpCi0gCi0rICAgIGRlZiB0ZXN0 X3BhcmFtZXRlcl9yZXByKHNlbGYpOgotKyAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0ICgKLSsg ICAgICAgICAgICBjX2Jvb2wsCi0rICAgICAgICAgICAgY19jaGFyLAotKyAgICAgICAgICAgIGNf d2NoYXIsCi0rICAgICAgICAgICAgY19ieXRlLAotKyAgICAgICAgICAgIGNfdWJ5dGUsCi0rICAg ICAgICAgICAgY19zaG9ydCwKLSsgICAgICAgICAgICBjX3VzaG9ydCwKLSsgICAgICAgICAgICBj X2ludCwKLSsgICAgICAgICAgICBjX3VpbnQsCi0rICAgICAgICAgICAgY19sb25nLAotKyAgICAg ICAgICAgIGNfdWxvbmcsCi0rICAgICAgICAgICAgY19sb25nbG9uZywKLSsgICAgICAgICAgICBj X3Vsb25nbG9uZywKLSsgICAgICAgICAgICBjX2Zsb2F0LAotKyAgICAgICAgICAgIGNfZG91Ymxl LAotKyAgICAgICAgICAgIGNfbG9uZ2RvdWJsZSwKLSsgICAgICAgICAgICBjX2NoYXJfcCwKLSsg ICAgICAgICAgICBjX3djaGFyX3AsCi0rICAgICAgICAgICAgY192b2lkX3AsCi0rICAgICAgICAp Ci0rICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHJlcHIoY19ib29sLmZyb21fcGFyYW0oVHJ1ZSkp LCByIl48Y3BhcmFtICdcPycgYXQgMHhbQS1GYS1mMC05XSs+JCIpCi0rICAgICAgICBzZWxmLmFz c2VydEVxdWFsKHJlcHIoY19jaGFyLmZyb21fcGFyYW0oOTcpKSwgIjxjcGFyYW0gJ2MnICgnYScp PiIpCi0rICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHJlcHIoY193Y2hhci5mcm9tX3BhcmFtKCdh JykpLCByIl48Y3BhcmFtICd1JyBhdCAweFtBLUZhLWYwLTldKz4kIikKLSsgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocmVwcihjX2J5dGUuZnJvbV9wYXJhbSg5OCkpLCAiPGNwYXJhbSAnYicgKDk4 KT4iKQotKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNfdWJ5dGUuZnJvbV9wYXJhbSg5 OCkpLCAiPGNwYXJhbSAnQicgKDk4KT4iKQotKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBy KGNfc2hvcnQuZnJvbV9wYXJhbSg1MTEpKSwgIjxjcGFyYW0gJ2gnICg1MTEpPiIpCi0rICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoY191c2hvcnQuZnJvbV9wYXJhbSg1MTEpKSwgIjxjcGFy YW0gJ0gnICg1MTEpPiIpCi0rICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHJlcHIoY19pbnQuZnJv bV9wYXJhbSgyMDAwMCkpLCByIl48Y3BhcmFtICdbbGldJyBcKDIwMDAwXCk+JCIpCi0rICAgICAg ICBzZWxmLmFzc2VydFJlZ2V4KHJlcHIoY191aW50LmZyb21fcGFyYW0oMjAwMDApKSwgciJePGNw YXJhbSAnW0xJXScgXCgyMDAwMFwpPiQiKQotKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChyZXBy KGNfbG9uZy5mcm9tX3BhcmFtKDIwMDAwKSksIHIiXjxjcGFyYW0gJ1tsaV0nIFwoMjAwMDBcKT4k IikKLSsgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgocmVwcihjX3Vsb25nLmZyb21fcGFyYW0oMjAw MDApKSwgciJePGNwYXJhbSAnW0xJXScgXCgyMDAwMFwpPiQiKQotKyAgICAgICAgc2VsZi5hc3Nl cnRSZWdleChyZXByKGNfbG9uZ2xvbmcuZnJvbV9wYXJhbSgyMDAwMCkpLCByIl48Y3BhcmFtICdb bGlxXScgXCgyMDAwMFwpPiQiKQotKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChyZXByKGNfdWxv bmdsb25nLmZyb21fcGFyYW0oMjAwMDApKSwgciJePGNwYXJhbSAnW0xJUV0nIFwoMjAwMDBcKT4k IikKLSsgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihjX2Zsb2F0LmZyb21fcGFyYW0oMS41 KSksICI8Y3BhcmFtICdmJyAoMS41KT4iKQotKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBy KGNfZG91YmxlLmZyb21fcGFyYW0oMS41KSksICI8Y3BhcmFtICdkJyAoMS41KT4iKQotKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNfZG91YmxlLmZyb21fcGFyYW0oMWUzMDApKSwgIjxj cGFyYW0gJ2QnICgxZSszMDApPiIpCi0rICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHJlcHIoY19s b25nZG91YmxlLmZyb21fcGFyYW0oMS41KSksIHIiXjxjcGFyYW0gKCdkJyBcKDEuNVwpfCdnJyBh dCAweFtBLUZhLWYwLTldKyk+JCIpCi0rICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHJlcHIoY19j aGFyX3AuZnJvbV9wYXJhbShiJ2hpaGknKSksICJePGNwYXJhbSAneicgXCgweFtBLUZhLWYwLTld K1wpPiQiKQotKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChyZXByKGNfd2NoYXJfcC5mcm9tX3Bh cmFtKCdoaWhpJykpLCAiXjxjcGFyYW0gJ1onIFwoMHhbQS1GYS1mMC05XStcKT4kIikKLSsgICAg ICAgIHNlbGYuYXNzZXJ0UmVnZXgocmVwcihjX3ZvaWRfcC5mcm9tX3BhcmFtKDB4MTIpKSwgciJe PGNwYXJhbSAnUCcgXCgweDAqMTJcKT4kIikKLSsKLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0gCi0gaWYgX19uYW1lX18g PT0gJ19fbWFpbl9fJzoKLWRpZmYgLS1naXQgYS9NaXNjL05FV1MuZC9uZXh0L1NlY3VyaXR5LzIw MjEtMDEtMTgtMDktMjctMzEuYnBvLTQyOTM4LjRabjRNcC5yc3QgYi9NaXNjL05FV1MuZC9uZXh0 L1NlY3VyaXR5LzIwMjEtMDEtMTgtMDktMjctMzEuYnBvLTQyOTM4LjRabjRNcC5yc3QKLW5ldyBm aWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwMDAwLi43ZGY2NWExNTZmZWFiCi0tLS0g L2Rldi9udWxsCi0rKysgYi9NaXNjL05FV1MuZC9uZXh0L1NlY3VyaXR5LzIwMjEtMDEtMTgtMDkt MjctMzEuYnBvLTQyOTM4LjRabjRNcC5yc3QKLUBAIC0wLDAgKzEsMiBAQAotK0F2b2lkIHN0YXRp YyBidWZmZXJzIHdoZW4gY29tcHV0aW5nIHRoZSByZXByIG9mIDpjbGFzczpgY3R5cGVzLmNfZG91 YmxlYCBhbmQKLSs6Y2xhc3M6YGN0eXBlcy5jX2xvbmdkb3VibGVgIHZhbHVlcy4KLWRpZmYgLS1n aXQgYS9Nb2R1bGVzL19jdHlwZXMvY2FsbHByb2MuYyBiL01vZHVsZXMvX2N0eXBlcy9jYWxscHJv Yy5jCi1pbmRleCBiMGEzNmEzMDI0OGY3Li5mMjUwNmRlNTQ0OThlIDEwMDY0NAotLS0tIGEvTW9k dWxlcy9fY3R5cGVzL2NhbGxwcm9jLmMKLSsrKyBiL01vZHVsZXMvX2N0eXBlcy9jYWxscHJvYy5j Ci1AQCAtNDg5LDU4ICs0ODksNDcgQEAgaXNfbGl0ZXJhbF9jaGFyKHVuc2lnbmVkIGNoYXIgYykK LSBzdGF0aWMgUHlPYmplY3QgKgotIFB5Q0FyZ19yZXByKFB5Q0FyZ09iamVjdCAqc2VsZikKLSB7 Ci0tICAgIGNoYXIgYnVmZmVyWzI1Nl07Ci0gICAgIHN3aXRjaChzZWxmLT50YWcpIHsKLSAgICAg Y2FzZSAnYic6Ci0gICAgIGNhc2UgJ0InOgotLSAgICAgICAgc3ByaW50ZihidWZmZXIsICI8Y3Bh cmFtICclYycgKCVkKT4iLAotKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8 Y3BhcmFtICclYycgKCVkKT4iLAotICAgICAgICAgICAgIHNlbGYtPnRhZywgc2VsZi0+dmFsdWUu Yik7Ci0tICAgICAgICBicmVhazsKLSAgICAgY2FzZSAnaCc6Ci0gICAgIGNhc2UgJ0gnOgotLSAg ICAgICAgc3ByaW50ZihidWZmZXIsICI8Y3BhcmFtICclYycgKCVkKT4iLAotKyAgICAgICAgcmV0 dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8Y3BhcmFtICclYycgKCVkKT4iLAotICAgICAgICAg ICAgIHNlbGYtPnRhZywgc2VsZi0+dmFsdWUuaCk7Ci0tICAgICAgICBicmVhazsKLSAgICAgY2Fz ZSAnaSc6Ci0gICAgIGNhc2UgJ0knOgotLSAgICAgICAgc3ByaW50ZihidWZmZXIsICI8Y3BhcmFt ICclYycgKCVkKT4iLAotKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8Y3Bh cmFtICclYycgKCVkKT4iLAotICAgICAgICAgICAgIHNlbGYtPnRhZywgc2VsZi0+dmFsdWUuaSk7 Ci0tICAgICAgICBicmVhazsKLSAgICAgY2FzZSAnbCc6Ci0gICAgIGNhc2UgJ0wnOgotLSAgICAg ICAgc3ByaW50ZihidWZmZXIsICI8Y3BhcmFtICclYycgKCVsZCk+IiwKLSsgICAgICAgIHJldHVy biBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPGNwYXJhbSAnJWMnICglbGQpPiIsCi0gICAgICAgICAg ICAgc2VsZi0+dGFnLCBzZWxmLT52YWx1ZS5sKTsKLS0gICAgICAgIGJyZWFrOwotIAotICAgICBj YXNlICdxJzoKLSAgICAgY2FzZSAnUSc6Ci0tICAgICAgICBzcHJpbnRmKGJ1ZmZlciwKLS0jaWZk ZWYgTVNfV0lOMzIKLS0gICAgICAgICAgICAiPGNwYXJhbSAnJWMnICglSTY0ZCk+IiwKLS0jZWxz ZQotLSAgICAgICAgICAgICI8Y3BhcmFtICclYycgKCVsbGQpPiIsCi0tI2VuZGlmCi0rICAgICAg ICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxjcGFyYW0gJyVjJyAoJWxsZCk+IiwKLSAg ICAgICAgICAgICBzZWxmLT50YWcsIHNlbGYtPnZhbHVlLnEpOwotLSAgICAgICAgYnJlYWs7Ci0g ICAgIGNhc2UgJ2QnOgotLSAgICAgICAgc3ByaW50ZihidWZmZXIsICI8Y3BhcmFtICclYycgKCVm KT4iLAotLSAgICAgICAgICAgIHNlbGYtPnRhZywgc2VsZi0+dmFsdWUuZCk7Ci0tICAgICAgICBi cmVhazsKLS0gICAgY2FzZSAnZic6Ci0tICAgICAgICBzcHJpbnRmKGJ1ZmZlciwgIjxjcGFyYW0g JyVjJyAoJWYpPiIsCi0tICAgICAgICAgICAgc2VsZi0+dGFnLCBzZWxmLT52YWx1ZS5mKTsKLS0g ICAgICAgIGJyZWFrOwotLQotKyAgICBjYXNlICdmJzogewotKyAgICAgICAgUHlPYmplY3QgKmYg PSBQeUZsb2F0X0Zyb21Eb3VibGUoKHNlbGYtPnRhZyA9PSAnZicpID8gc2VsZi0+dmFsdWUuZiA6 IHNlbGYtPnZhbHVlLmQpOwotKyAgICAgICAgaWYgKGYgPT0gTlVMTCkgewotKyAgICAgICAgICAg IHJldHVybiBOVUxMOwotKyAgICAgICAgfQotKyAgICAgICAgUHlPYmplY3QgKnJlc3VsdCA9IFB5 VW5pY29kZV9Gcm9tRm9ybWF0KCI8Y3BhcmFtICclYycgKCVSKT4iLCBzZWxmLT50YWcsIGYpOwot KyAgICAgICAgUHlfREVDUkVGKGYpOwotKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSsgICAgfQot ICAgICBjYXNlICdjJzoKLSAgICAgICAgIGlmIChpc19saXRlcmFsX2NoYXIoKHVuc2lnbmVkIGNo YXIpc2VsZi0+dmFsdWUuYykpIHsKLS0gICAgICAgICAgICBzcHJpbnRmKGJ1ZmZlciwgIjxjcGFy YW0gJyVjJyAoJyVjJyk+IiwKLSsgICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3Jt YXQoIjxjcGFyYW0gJyVjJyAoJyVjJyk+IiwKLSAgICAgICAgICAgICAgICAgc2VsZi0+dGFnLCBz ZWxmLT52YWx1ZS5jKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGVsc2UgewotLSAgICAgICAgICAg IHNwcmludGYoYnVmZmVyLCAiPGNwYXJhbSAnJWMnICgnXFx4JTAyeCcpPiIsCi0rICAgICAgICAg ICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8Y3BhcmFtICclYycgKCdcXHglMDJ4Jyk+ IiwKLSAgICAgICAgICAgICAgICAgc2VsZi0+dGFnLCAodW5zaWduZWQgY2hhcilzZWxmLT52YWx1 ZS5jKTsKLSAgICAgICAgIH0KLS0gICAgICAgIGJyZWFrOwotIAotIC8qIEhtLCBhcmUgdGhlc2Ug J3onIGFuZCAnWicgY29kZXMgdXNlZnVsIGF0IGFsbD8KLSAgICBTaG91bGRuJ3QgdGhleSBiZSBy ZXBsYWNlZCBieSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBjX3N0cmluZwotQEAgLTU0OSwyMiArNTM4 LDIwIEBAIFB5Q0FyZ19yZXByKFB5Q0FyZ09iamVjdCAqc2VsZikKLSAgICAgY2FzZSAneic6Ci0g ICAgIGNhc2UgJ1onOgotICAgICBjYXNlICdQJzoKLS0gICAgICAgIHNwcmludGYoYnVmZmVyLCAi PGNwYXJhbSAnJWMnICglcCk+IiwKLSsgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1h dCgiPGNwYXJhbSAnJWMnICglcCk+IiwKLSAgICAgICAgICAgICBzZWxmLT50YWcsIHNlbGYtPnZh bHVlLnApOwotICAgICAgICAgYnJlYWs7Ci0gCi0gICAgIGRlZmF1bHQ6Ci0gICAgICAgICBpZiAo aXNfbGl0ZXJhbF9jaGFyKCh1bnNpZ25lZCBjaGFyKXNlbGYtPnRhZykpIHsKLS0gICAgICAgICAg ICBzcHJpbnRmKGJ1ZmZlciwgIjxjcGFyYW0gJyVjJyBhdCAlcD4iLAotKyAgICAgICAgICAgIHJl dHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPGNwYXJhbSAnJWMnIGF0ICVwPiIsCi0gICAgICAg ICAgICAgICAgICh1bnNpZ25lZCBjaGFyKXNlbGYtPnRhZywgKHZvaWQgKilzZWxmKTsKLSAgICAg ICAgIH0KLSAgICAgICAgIGVsc2UgewotLSAgICAgICAgICAgIHNwcmludGYoYnVmZmVyLCAiPGNw YXJhbSAweCUwMnggYXQgJXA+IiwKLSsgICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21G b3JtYXQoIjxjcGFyYW0gMHglMDJ4IGF0ICVwPiIsCi0gICAgICAgICAgICAgICAgICh1bnNpZ25l ZCBjaGFyKXNlbGYtPnRhZywgKHZvaWQgKilzZWxmKTsKLSAgICAgICAgIH0KLS0gICAgICAgIGJy ZWFrOwotICAgICB9Ci0tICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWZmZXIpOwot IH0KLSAKLSBzdGF0aWMgUHlNZW1iZXJEZWYgUHlDQXJnVHlwZV9tZW1iZXJzW10gPSB7CmRpZmYg LS1naXQgYS9nbnUvcGFja2FnZXMvcHl0aG9uLnNjbSBiL2dudS9wYWNrYWdlcy9weXRob24uc2Nt CmluZGV4IDVjNWJlMGQ3OGMuLjlkOTcwNTBjNjYgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9w eXRob24uc2NtCisrKyBiL2dudS9wYWNrYWdlcy9weXRob24uc2NtCkBAIC01OSw2ICs1OSw3IEBA CiA7OzsgQ29weXJpZ2h0IMKpIDIwMTggVmFncmFudCBDYXNjYWRpYW4gPHZhZ3JhbnRAZGViaWFu Lm9yZz4KIDs7OyBDb3B5cmlnaHQgwqkgMjAxOSBUYW5ndXkgTGUgQ2Fycm91ciA8dGFuZ3V5QGJp b25lbGFuZC5vcmc+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjAgSmFuIChqYW5uZWtlKSBOaWV1d2Vu aHVpemVuIDxqYW5uZWtlQGdudS5vcmc+Cis7OzsgQ29weXJpZ2h0IMKpIDIwMjEgR3JlZyBIb2dh biA8Y29kZUBncmVnaG9nYW4uY29tPgogOzs7CiA7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05V IEd1aXguCiA7OzsKQEAgLTUzMywxOSArNTM0LDE4IEBAIGRhdGEgdHlwZXMuIikKIChkZWZpbmUt cHVibGljIHB5dGhvbi0zLjkKICAgKHBhY2thZ2UgKGluaGVyaXQgcHl0aG9uLTMuOCkKICAgICAo bmFtZSAicHl0aG9uLW5leHQiKQotICAgICh2ZXJzaW9uICIzLjkuMSIpCisgICAgKHZlcnNpb24g IjMuOS4yIikKICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgKG1ldGhvZCB1cmwt ZmV0Y2gpCiAgICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgImh0dHBzOi8vd3d3LnB5 dGhvbi5vcmcvZnRwL3B5dGhvbi8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmVyc2lvbiAiL1B5dGhvbi0iIHZlcnNpb24gIi50YXIueHoiKSkKICAgICAgICAgICAgICAgKHBh dGNoZXMgKHNlYXJjaC1wYXRjaGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uLTMu OS1maXgtdGVzdHMucGF0Y2giCi0gICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uLTMuOS1D VkUtMjAyMS0zMTc3LnBhdGNoIgogICAgICAgICAgICAgICAgICAgICAgICAgInB5dGhvbi0zLWRl dGVybWluaXN0aWMtYnVpbGQtaW5mby5wYXRjaCIKICAgICAgICAgICAgICAgICAgICAgICAgICJw eXRob24tMy1zZWFyY2gtcGF0aHMucGF0Y2giKSkKICAgICAgICAgICAgICAgKHNoYTI1NgogICAg ICAgICAgICAgICAgKGJhc2UzMgotICAgICAgICAgICAgICAgICIxenEzazR5bWlmeTVpZzczOXp5 dng5czJhaW52Y2h4YjF6cHkxMzl6NzRrcnI2NTN5NzRyIikpCisgICAgICAgICAgICAgICAgIjB6 OTR2djVxaGx3dmNnYzRzeTlzZGlxczAyMjBzODR3eDNiNjJ2c2xoNTQxOXoyazg4MXciKSkKICAg ICAgICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCB1dGlscykpKQogICAgICAgICAgICAg ICAoc25pcHBldAogICAgICAgICAgICAgICAgJyhiZWdpbgotLSAKMi4zMC4xCgo= --00000000000086ed2605bc2a2116-- From unknown Tue Aug 19 02:58:33 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#46771] [PATCH] gnu: Python 3.9: Update to 3.9.2. Resent-From: Leo Famulari Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 25 Feb 2021 19:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46771 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Greg Hogan Cc: 46771@debbugs.gnu.org Received: via spool by 46771-submit@debbugs.gnu.org id=B46771.161428227010482 (code B ref 46771); Thu, 25 Feb 2021 19:45:02 +0000 Received: (at 46771) by debbugs.gnu.org; 25 Feb 2021 19:44:30 +0000 Received: from localhost ([127.0.0.1]:39399 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFMYg-0002ir-3v for submit@debbugs.gnu.org; Thu, 25 Feb 2021 14:44:30 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:51427) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFMYd-0002ie-Ni for 46771@debbugs.gnu.org; Thu, 25 Feb 2021 14:44:20 -0500 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 900B55C00F3; Thu, 25 Feb 2021 14:44:14 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Thu, 25 Feb 2021 14:44:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-transfer-encoding:in-reply-to; s=mesmtp; bh=yDfbwX3mEZa1PUm4IDWTEDW6HtXqmj4gYsNKP54ABiw=; b=az3ENb948JbW v+kEOUIrB9TZA3n6frsgpHkp4SYhMOgRYv2nKPEALCJ9tmvUlFZJNkvnf2Dd4eE6 kllGf4RQAS/tVILz4c+VOcOkgh2bYhsFWXB2axA9YSoY9P9BOyN02Id23sbV4W85 KjeOo49ssN90jpRBlsyWFlkaztdYslM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=yDfbwX3mEZa1PUm4IDWTEDW6HtXqmj4gYsNKP54AB iw=; b=Ulqzj/FPuJHO8y2tE9GWKxa8CYTUXSkmdxCl2mjzNC5sxt6IzYIbbkbIz Fs6jBZg0xmMqX8CER+oCKihKdPldu0dt79ehxSsfHCAcf/bgVxmCYmhrK+R9+UDJ A3NLcuggkRXwF2I8Mf3+ZGNRNaSX+liaQoDiCaz6eNu4cPdsm/gmJcWzrunQ9YJK oR9awbNhVBPoXsN7po00oOeHpEKd228RjbS1UfY/x6zq5gfvEHgjA9rhlDz6poQT X84V0apJqx525wNgQVBqs/txzadelTJ6/bYlzobyXnpUtVbGfOS0oRl/cNFDXPoH XciSBXt8r40gdxIbGWzfWCFPyj/Eg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrkeelgddufedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkfhggtggugfgjsehtke ertddttddunecuhfhrohhmpefnvghoucfhrghmuhhlrghrihcuoehlvghosehfrghmuhhl rghrihdrnhgrmhgvqeenucggtffrrghtthgvrhhnpeettefgvefhtedtjefhjeetledtfe ehvedthfelffevkeejheefgfejtdfhkeegfeenucffohhmrghinhepmhhithhrvgdrohhr ghdpghhithhhuhgsrdgtohhmpdhphihthhhonhdrohhrghenucfkphepuddttddruddurd duieelrdduudeknecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhf rhhomheplhgvohesfhgrmhhulhgrrhhirdhnrghmvg X-ME-Proxy: Received: from localhost (pool-100-11-169-118.phlapa.fios.verizon.net [100.11.169.118]) by mail.messagingengine.com (Postfix) with ESMTPA id 480F71080054; Thu, 25 Feb 2021 14:44:14 -0500 (EST) Date: Thu, 25 Feb 2021 14:44:12 -0500 From: Leo Famulari Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Thu, Feb 25, 2021 at 09:40:09AM -0500, Greg Hogan wrote: > From 7388fdcc629074e80ad88714a22f5eb5e8e5fd35 Mon Sep 17 00:00:00 2001 > From: Greg Hogan > Date: Wed, 24 Feb 2021 14:12:28 +0000 > Subject: [PATCH] gnu: Python 3.9: Update to 3.9.2. > > * gnu/packages/python.scm (python-3.9): Update to 3.9.2. > * gnu/packages/patches/python-3.9-CVE-2021-3177.patch: Delete file. > * gnu/local.mk (dist_patch_DATA): Remove it. Thank you! This kind of maintenance / follow-up work is super valuable. Pushed as 10b909a0249fd53d589890b357232db4165690f5 > --- > gnu/local.mk | 1 - > .../patches/python-3.9-CVE-2021-3177.patch | 194 ------------------ > gnu/packages/python.scm | 6 +- > 3 files changed, 3 insertions(+), 198 deletions(-) > delete mode 100644 gnu/packages/patches/python-3.9-CVE-2021-3177.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index 8d46cda639..8d1465158a 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -1526,7 +1526,6 @@ dist_patch_DATA = \ > %D%/packages/patches/python-3.8-fix-tests.patch \ > %D%/packages/patches/python-3.8-CVE-2021-3177.patch \ > %D%/packages/patches/python-3.9-fix-tests.patch \ > - %D%/packages/patches/python-3.9-CVE-2021-3177.patch \ > %D%/packages/patches/python-CVE-2018-14647.patch \ > %D%/packages/patches/python-CVE-2020-26116.patch \ > %D%/packages/patches/python-aionotify-0.2.0-py3.8.patch \ > diff --git a/gnu/packages/patches/python-3.9-CVE-2021-3177.patch > b/gnu/packages/patches/python-3.9-CVE-2021-3177.patch > deleted file mode 100644 > index 155f17deca..0000000000 > --- a/gnu/packages/patches/python-3.9-CVE-2021-3177.patch > +++ /dev/null > @@ -1,194 +0,0 @@ > -Fix CVE-2021-3177 for Python 3.9: > - > -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3177 > - > -Patch copied from upstream source repository: > - > - > https://github.com/python/cpython/commit/c347cbe694743cee120457aa6626712f7799a932 > - > -From c347cbe694743cee120457aa6626712f7799a932 Mon Sep 17 00:00:00 2001 > -From: "Miss Islington (bot)" > - <31488909+miss-islington@users.noreply.github.com> > -Date: Mon, 18 Jan 2021 13:29:31 -0800 > -Subject: [PATCH] closes bpo-42938: Replace snprintf with Python unicode > - formatting in ctypes param reprs. (GH-24247) > - > -(cherry picked from commit 916610ef90a0d0761f08747f7b0905541f0977c7) > - > -Co-authored-by: Benjamin Peterson > - > -Co-authored-by: Benjamin Peterson > ---- > - Lib/ctypes/test/test_parameters.py | 43 ++++++++++++++++ > - .../2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst | 2 + > - Modules/_ctypes/callproc.c | 51 +++++++------------ > - 3 files changed, 64 insertions(+), 32 deletions(-) > - create mode 100644 > Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst > - > -diff --git a/Lib/ctypes/test/test_parameters.py > b/Lib/ctypes/test/test_parameters.py > -index e4c25fd880cef..531894fdec838 100644 > ---- a/Lib/ctypes/test/test_parameters.py > -+++ b/Lib/ctypes/test/test_parameters.py > -@@ -201,6 +201,49 @@ def __dict__(self): > - with self.assertRaises(ZeroDivisionError): > - WorseStruct().__setstate__({}, b'foo') > - > -+ def test_parameter_repr(self): > -+ from ctypes import ( > -+ c_bool, > -+ c_char, > -+ c_wchar, > -+ c_byte, > -+ c_ubyte, > -+ c_short, > -+ c_ushort, > -+ c_int, > -+ c_uint, > -+ c_long, > -+ c_ulong, > -+ c_longlong, > -+ c_ulonglong, > -+ c_float, > -+ c_double, > -+ c_longdouble, > -+ c_char_p, > -+ c_wchar_p, > -+ c_void_p, > -+ ) > -+ self.assertRegex(repr(c_bool.from_param(True)), r"^ at 0x[A-Fa-f0-9]+>$") > -+ self.assertEqual(repr(c_char.from_param(97)), " ('a')>") > -+ self.assertRegex(repr(c_wchar.from_param('a')), r"^ 0x[A-Fa-f0-9]+>$") > -+ self.assertEqual(repr(c_byte.from_param(98)), "") > -+ self.assertEqual(repr(c_ubyte.from_param(98)), " (98)>") > -+ self.assertEqual(repr(c_short.from_param(511)), " (511)>") > -+ self.assertEqual(repr(c_ushort.from_param(511)), " (511)>") > -+ self.assertRegex(repr(c_int.from_param(20000)), r"^ \(20000\)>$") > -+ self.assertRegex(repr(c_uint.from_param(20000)), r"^ '[LI]' \(20000\)>$") > -+ self.assertRegex(repr(c_long.from_param(20000)), r"^ '[li]' \(20000\)>$") > -+ self.assertRegex(repr(c_ulong.from_param(20000)), r"^ '[LI]' \(20000\)>$") > -+ self.assertRegex(repr(c_longlong.from_param(20000)), r"^ '[liq]' \(20000\)>$") > -+ self.assertRegex(repr(c_ulonglong.from_param(20000)), r"^ '[LIQ]' \(20000\)>$") > -+ self.assertEqual(repr(c_float.from_param(1.5)), " (1.5)>") > -+ self.assertEqual(repr(c_double.from_param(1.5)), " (1.5)>") > -+ self.assertEqual(repr(c_double.from_param(1e300)), " (1e+300)>") > -+ self.assertRegex(repr(c_longdouble.from_param(1.5)), r"^ ('d' \(1.5\)|'g' at 0x[A-Fa-f0-9]+)>$") > -+ self.assertRegex(repr(c_char_p.from_param(b'hihi')), "^ 'z' \(0x[A-Fa-f0-9]+\)>$") > -+ self.assertRegex(repr(c_wchar_p.from_param('hihi')), "^ 'Z' \(0x[A-Fa-f0-9]+\)>$") > -+ self.assertRegex(repr(c_void_p.from_param(0x12)), r"^ \(0x0*12\)>$") > -+ > - ################################################################ > - > - if __name__ == '__main__': > -diff --git > a/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst > b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst > -new file mode 100644 > -index 0000000000000..7df65a156feab > ---- /dev/null > -+++ b/Misc/NEWS.d/next/Security/2021-01-18-09-27-31.bpo-42938.4Zn4Mp.rst > -@@ -0,0 +1,2 @@ > -+Avoid static buffers when computing the repr of :class:`ctypes.c_double` > and > -+:class:`ctypes.c_longdouble` values. > -diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c > -index b0a36a30248f7..f2506de54498e 100644 > ---- a/Modules/_ctypes/callproc.c > -+++ b/Modules/_ctypes/callproc.c > -@@ -489,58 +489,47 @@ is_literal_char(unsigned char c) > - static PyObject * > - PyCArg_repr(PyCArgObject *self) > - { > -- char buffer[256]; > - switch(self->tag) { > - case 'b': > - case 'B': > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.b); > -- break; > - case 'h': > - case 'H': > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.h); > -- break; > - case 'i': > - case 'I': > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.i); > -- break; > - case 'l': > - case 'L': > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.l); > -- break; > - > - case 'q': > - case 'Q': > -- sprintf(buffer, > --#ifdef MS_WIN32 > -- "", > --#else > -- "", > --#endif > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.q); > -- break; > - case 'd': > -- sprintf(buffer, "", > -- self->tag, self->value.d); > -- break; > -- case 'f': > -- sprintf(buffer, "", > -- self->tag, self->value.f); > -- break; > -- > -+ case 'f': { > -+ PyObject *f = PyFloat_FromDouble((self->tag == 'f') ? > self->value.f : self->value.d); > -+ if (f == NULL) { > -+ return NULL; > -+ } > -+ PyObject *result = PyUnicode_FromFormat("", > self->tag, f); > -+ Py_DECREF(f); > -+ return result; > -+ } > - case 'c': > - if (is_literal_char((unsigned char)self->value.c)) { > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.c); > - } > - else { > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, (unsigned char)self->value.c); > - } > -- break; > - > - /* Hm, are these 'z' and 'Z' codes useful at all? > - Shouldn't they be replaced by the functionality of c_string > -@@ -549,22 +538,20 @@ PyCArg_repr(PyCArgObject *self) > - case 'z': > - case 'Z': > - case 'P': > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - self->tag, self->value.p); > - break; > - > - default: > - if (is_literal_char((unsigned char)self->tag)) { > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - (unsigned char)self->tag, (void *)self); > - } > - else { > -- sprintf(buffer, "", > -+ return PyUnicode_FromFormat("", > - (unsigned char)self->tag, (void *)self); > - } > -- break; > - } > -- return PyUnicode_FromString(buffer); > - } > - > - static PyMemberDef PyCArgType_members[] = { > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm > index 5c5be0d78c..9d97050c66 100644 > --- a/gnu/packages/python.scm > +++ b/gnu/packages/python.scm > @@ -59,6 +59,7 @@ > ;;; Copyright © 2018 Vagrant Cascadian > ;;; Copyright © 2019 Tanguy Le Carrour > ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen > +;;; Copyright © 2021 Greg Hogan > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -533,19 +534,18 @@ data types.") > (define-public python-3.9 > (package (inherit python-3.8) > (name "python-next") > - (version "3.9.1") > + (version "3.9.2") > (source (origin > (method url-fetch) > (uri (string-append "https://www.python.org/ftp/python/" > version "/Python-" version ".tar.xz")) > (patches (search-patches > "python-3.9-fix-tests.patch" > - "python-3.9-CVE-2021-3177.patch" > "python-3-deterministic-build-info.patch" > "python-3-search-paths.patch")) > (sha256 > (base32 > - "1zq3k4ymify5ig739zyvx9s2ainvchxb1zpy139z74krr653y74r")) > + "0z94vv5qhlwvcgc4sy9sdiqs0220s84wx3b62vslh5419z2k881w")) > (modules '((guix build utils))) > (snippet > '(begin > -- > 2.30.1 From debbugs-submit-bounces@debbugs.gnu.org Thu Feb 25 14:44:35 2021 Received: (at control) by debbugs.gnu.org; 25 Feb 2021 19:44:35 +0000 Received: from localhost ([127.0.0.1]:39403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFMYt-0002jH-JV for submit@debbugs.gnu.org; Thu, 25 Feb 2021 14:44:35 -0500 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:43563) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFMYq-0002ix-KP for control@debbugs.gnu.org; Thu, 25 Feb 2021 14:44:34 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 7C51A5C00F3; Thu, 25 Feb 2021 14:44:27 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Thu, 25 Feb 2021 14:44:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=date:from:to:message-id:mime-version:content-type; s=mesmtp; bh=FVCiC1zaDxWCHnw0N6jtnEaRy3ay87dnr0eY7cuOS28=; b=ddCpnrDt2Oth dY+bk2SWW1Uoa5uLINFM54Drj2iZDnqrtbMT+GZnr4Tt4MSAXPxWYAJUttAIa7e+ MYvMSAkAR/0OXMtqwPx+LmUFQ4tiq+NBZY5an4UVNS6HbpMXKrNhpJnoss59I95Z uM+59A+WQnvCV5nkjsWbCHrfjFdU1QQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=FVCiC1zaDxWCHnw0N6jtnEaRy3ay87dnr0eY7cuOS 28=; b=mzjp3RgrKRiJj0OWeAtzGJzpTmCYNASFxwgcYids2aSbVqTDzEMvwo2k1 /EBri5VPRV1i1iRwym0Jl2xYnCCcqA19H6GDn4nhQriWa6JA4CeVr0eGZ0qSzkfw +SGR3LEDcB5e+3weApeaWY+9ppk7x5o4uztNX9ZkWt2Y7O8ltGTOJZ2E4uOMkIrV KZVR4PUObQcchtHxTbnOYSl8jO6PVT/vkYDwN/1xsGwx9TObNbsP7hOz6VhB19IA IHG4r028jPTgMGx56bOQdHrK8Bm5KeMzZCCw4HXUaqJj4KNVo7t5ozAhKBr43rxA u4Bi1FeYgPITMySszwcRFaEtWFusg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrkeelgddufedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucfgmhhpthihuchsuhgsjhgvtghtucdluddtmdenuc fjughrpeffhffvkfggtggusehttdertddttddvnecuhfhrohhmpefnvghoucfhrghmuhhl rghrihcuoehlvghosehfrghmuhhlrghrihdrnhgrmhgvqeenucggtffrrghtthgvrhhnpe fhjeeigfefvedvfeetheegledtkeevuddtgedtudeiteehteegvdefffduffefffenucfk phepuddttddruddurdduieelrdduudeknecuvehluhhsthgvrhfuihiivgeptdenucfrrg hrrghmpehmrghilhhfrhhomheplhgvohesfhgrmhhulhgrrhhirdhnrghmvg X-ME-Proxy: Received: from localhost (pool-100-11-169-118.phlapa.fios.verizon.net [100.11.169.118]) by mail.messagingengine.com (Postfix) with ESMTPA id 207DD108005C for ; Thu, 25 Feb 2021 14:44:27 -0500 (EST) Date: Thu, 25 Feb 2021 14:44:25 -0500 From: Leo Famulari To: control@debbugs.gnu.org Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Score: 3.3 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 46771 Content analysis details: (3.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [66.111.4.27 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [66.111.4.27 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject 2.0 BODY_EMPTY No body text in message X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.3 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 46771 Content analysis details: (2.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [66.111.4.27 listed in list.dnswl.org] 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [66.111.4.27 listed in wl.mailspike.net] -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 TVD_SPACE_RATIO No description available. 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject 2.0 BODY_EMPTY No body text in message close 46771