From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id IM8zKKeAHWBZdwAA0tVLHw (envelope-from ) for ; Fri, 05 Feb 2021 17:30:15 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id 4FkGJKeAHWBWYAAAB5/wlQ (envelope-from ) for ; Fri, 05 Feb 2021 17:30:15 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3B24C9402B1 for ; Fri, 5 Feb 2021 17:30:15 +0000 (UTC) Received: from localhost ([::1]:44404 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l84vt-0003pC-Nv for larch@yhetil.org; Fri, 05 Feb 2021 12:30:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45638) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l84Sg-0006LV-JA for bug-guix@gnu.org; Fri, 05 Feb 2021 12:00:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:33059) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l84Sg-0003nk-6h for bug-guix@gnu.org; Fri, 05 Feb 2021 12:00:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l84Sg-0007Cp-5M for bug-guix@gnu.org; Fri, 05 Feb 2021 12:00:02 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#46330: Guile-provided GMP allocators interfere with GnuTLS Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 05 Feb 2021 17:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 46330 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: 46330@debbugs.gnu.org X-Debbugs-Original-To: bug-guix@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161254439827653 (code B ref -1); Fri, 05 Feb 2021 17:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 5 Feb 2021 16:59:58 +0000 Received: from localhost ([127.0.0.1]:44605 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l84Sc-0007Bw-93 for submit@debbugs.gnu.org; Fri, 05 Feb 2021 11:59:58 -0500 Received: from lists.gnu.org ([209.51.188.17]:53766) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l84Sa-0007Bp-RA for submit@debbugs.gnu.org; Fri, 05 Feb 2021 11:59:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45634) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l84Sa-00068X-FS for bug-guix@gnu.org; Fri, 05 Feb 2021 11:59:56 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:47942) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l84Sa-0003lK-6R for bug-guix@gnu.org; Fri, 05 Feb 2021 11:59:56 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=36220 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l84SX-0008Bh-6o for bug-guix@gnu.org; Fri, 05 Feb 2021 11:59:54 -0500 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 17 =?UTF-8?Q?Pluvi=C3=B4se?= an 229 de la =?UTF-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 05 Feb 2021 17:59:51 +0100 Message-ID: <87v9b61md4.fsf@inria.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.85 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Migadu-Queue-Id: 3B24C9402B1 X-Spam-Score: -2.85 X-Migadu-Scanner: scn1.migadu.com X-TUID: IirQKLf9r8XH Fellow Debian hackers identified a bug causing memory corruption in Nettle data structures used by GnuTLS when GnuTLS is used from Guile: https://bugs.debian.org/964284 In a nutshell, Guile installs its own GMP memory allocation routines (when =E2=80=98scm_install_gmp_memory_functions=E2=80=99 is true, which is = the default) so that GMP allocates via libgc. GnuTLS uses Nettle, which uses GMP, so Nettle too ends up allocating via libgc; however, since pointers to that memory are not scanned by libgc, they end up being reclaimed early. In practice, memory corruption is relatively rare, to the point that we did not notice it in Guix. In Debian, it would lead to a failure of the =E2=80=98tests/reauth.scm=E2=80=99 test in GnuTLS. With minor modification= s to the test, as noted in the thread above, I can reproduce it on Guix as well. The thread above mentions possible workaround, but there=E2=80=99s nothing satisfactory. The longer-term solution is to use mini-GMP in Guile (which is also nice as a way to reduce dependencies). To be continued=E2=80=A6 Ludo=E2=80=99.