From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 11286 invoked from network); 21 Feb 2023 11:48:11 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 21 Feb 2023 11:48:11 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1676980091; b=hZauOJbOIHqT1wkNi0vAUEpabrYx10Pk37Z6ARkdWwHjoFI/p7BvGsFzvj+HRQQ5RppIlRP6ga Z6bbHG0wZYQIESxjVDBTik+pAo7ed+MhZ5xd3Un2WgUFO/1TDHva90alYbXhvwPMqDeWMcbfI9 whsAvongq2FizKxXHMggk5bbxKvrmztSO4Zn/VV7mAq3fWBRLd5BbYKRmUez8A0tRrhAO8HbU0 Xx/vN40cWSeNd72jt/3d4GhFkE+QiI8wndFDeuHEAckSsAyjkLQ3mBjvlvhLUkrGB2uIgVqq/d dj75Ha12mn9IReTTOyq7ApvaUNtX+M4ZOxR0UiLo+XOgWA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1676980091; bh=Io/MDqvd3/tBV+VBtxGsrT7EQV0oxbLL28ei7Q7fFYc=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:To:From:Date:DKIM-Signature: DKIM-Signature; b=nNcAUP6OvCdwgTC+SPVZHpi2nPYDEz6gEQE5gcG90Lzaxl+7iXjuCpe7eUDuf26sShcF8XlpUQ IqnDLb1gl8lDm7IRTqOBZlKqOGWUOCiX1yc/tyIfnkUX9wT/on8l2K6A3rcN1Q6dTAS5H2BCk5 chgkvDU3VgIMl+7dm2i8idKPbQmHA26swP4qNoASKDL25/zl4mEU79W9S1mcxe1QgLgcGFT3Zv EimxxNiKcJmzP0v+FnWS0FWSH0XS41gf0IAFY+Tfs5I8uBR9TfeY5QF+zIEKezYl9DqnduvUAp zA5CRYVHjEIsBqK0Tnybc466fBwX7SqPCOgB4GWOBErpRQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:To:From: Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=judZ8lMB1Sw+/gQ+qNTpd0Ny/VjfpnpQ3MZc+J0q/vQ=; b=BzrQjP3saH08N93mdlP7wb5y6a /wzMHyB3nOmITScQhZZEczyGRGMPtdyhYEjuDuOPBhXq9zpGwwQVQtBKN19TBgm6fazWnt35i0JR4 l+NXEGRDD6GrVw4HrMsUQ5eHup7o4PScW/8kuJ4RpORl0Fs/7AXQL4s+VY1PpTpg0KrHiw5jDgdCS 7rIKQW+SpThYGOGap/PdBY5INTlTn1I5LIwUEBzJdjQZbpbXVWbBUM7j5YSym1m3Lo7E4mMfiw3oN 1FDhhtmNUlzGq3JP3WHju2EyA8tcD2QZoQMA1Dqo++rp5PGXF3bYYaavsQEO+TSQnsfT08KyEStyQ 0MtMatiQ==; Received: by zero.zsh.org with local id 1pUR7x-000H5c-Ch; Tue, 21 Feb 2023 11:48:09 +0000 Authentication-Results: zsh.org; iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none Received: from smtpq2.tb.ukmail.iss.as9143.net ([212.54.57.97]:42106) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1pUR7M-000Goa-IB; Tue, 21 Feb 2023 11:47:33 +0000 Received: from [212.54.57.81] (helo=smtp2.tb.ukmail.iss.as9143.net) by smtpq2.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1) (envelope-from ) id 1pUR7L-0005Z9-VB for zsh-workers@zsh.org; Tue, 21 Feb 2023 12:47:32 +0100 Received: from oxbe6.tb.ukmail.iss.as9143.net ([172.25.160.137]) by smtp2.tb.ukmail.iss.as9143.net with ESMTP id UR7Lpf4Oe6AslUR7LpCP57; Tue, 21 Feb 2023 12:47:31 +0100 X-Env-Mailfrom: p.w.stephenson@ntlworld.com X-Env-Rcptto: zsh-workers@zsh.org X-SourceIP: 172.25.160.137 X-CNFS-Analysis: v=2.4 cv=c8ttAzxl c=1 sm=1 tr=0 ts=63f4af53 cx=a_exe a=wOjQ4in9RKFG6jhXMc4Ghg==:117 a=1DWFKdCB1IcA:10 a=IkcTkHD0fZMA:10 a=ZjyAdWuDOD4A:10 a=q2GGsy2AAAAA:8 a=NLZqzBF-AAAA:8 a=koEUjfWrs6bB2xz8a64A:9 a=QEXdDO2ut3YA:10 a=z9dJwno5l634igLiVhy-:22 X-Authenticated-Sender: p.w.stephenson@ntlworld.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com; s=meg.feb2017; t=1676980051; bh=Io/MDqvd3/tBV+VBtxGsrT7EQV0oxbLL28ei7Q7fFYc=; h=Date:From:To:In-Reply-To:References:Subject; b=WFaA3uoVmv0Xz1Y69nQwu452anpGDHGDL66G5q7KixI5OmMjLvq4CcxKoszfKjzZn RTQxd6PB6mzd2/DMry9+sR5EWsJo3zKXaa5WYzYlATdvgzKepZ5HwwHQvcU31igJld XUsfsspmUL0SHlsQNecZkklRpXe/f/p0kEnOEkEzeM9zzL4P0foRtCh1ayGmT3+tpA 5IqBoBHCSG05wUh3sVCDLZp8LC32bFDJaWnkgeF7sbxzi0n9crYPZh8TWivl5rz5vu cjCTqfdow0CkhBzT0W0k3rL9MyK9arRslp4aDQaH6ZIvWSBAg0mvoC/CE6hBmeih8/ aSvSaN+Msnn5g== Date: Tue, 21 Feb 2023 11:47:31 +0000 (GMT) From: Peter Stephenson To: Zsh hackers list Message-ID: <338705584.2294040.1676980051672@mail.virginmedia.com> In-Reply-To: References: <1249162537.4244630.1676386019653@mail.virginmedia.com> <1911575874.92635.1676392609186@mail.virginmedia.com> <1919749331.2020682.1676562737303@mail.virginmedia.com> Subject: Re: zmodload (-u?) changing options (was Re: [PATCH] Named reference typos & misc.) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer X-Originating-IP: 147.161.224.167 X-Originating-Client: open-xchange-appsuite X-CMAE-Envelope: MS4xfBeJakbKV0R4Fkzw07LS2clKWzyaui9vY8P5m+DT1IlENsFAwXESAkRcQBKzGO1AUTfFrDlVGLxdMzYZcYyGCy35PefYiHlvlcYKYC4yeqSWw4DVO4yC RVwt1bmRTVLxzuiKJ8L85WuiCPwWYChm2zjejyLbAe9lTtOgXmdiIOisXLbhnEUdvBSD5Ic9AITfDrlK+4nPK5W41DuuqsUA/ARzbVXLf+bsWAozD+tpxKUL X-Seq: 51465 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: > On 16/02/2023 18:17 Bart Schaefer wrote: > On Thu, Feb 16, 2023 at 7:53 AM Peter Stephenson > wrote: > > > > Might be something valgrind could help with, it's hard to see how > > this could be deliberate even as an obscure side effect. > > I rigged up a script as Src/zsh so that I could invoke valgrind from > the test harness. Got multiple invalid reads for this block: > > ==746398== Block was alloc'd at > ==746398== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgprel > oad_memcheck-amd64-linux.so) > ==746398== by 0x190208: zalloc (mem.c:966) > ==746398== by 0x1903B9: zshcalloc (mem.c:979) > ==746398== by 0x19B2CD: createparam (params.c:1061) > ==746398== by 0x1A1048: assignsparam (params.c:3130) > ==746398== by 0x1A1D02: setsparam (params.c:3240) > ==746398== by 0x19270F: add_autoparam (module.c:1215) > ==746398== by 0x19862A: autofeatures (module.c:3612) > ==746398== by 0x19686F: unload_module (module.c:2902) > ==746398== by 0x196A04: unload_named_module (module.c:2949) > ==746398== by 0x196ABD: bin_zmodload_load (module.c:2971) > ==746398== by 0x1957AD: bin_zmodload (module.c:2499) This means that when we unloaded the module we restored a list of autoloadable parameters so it could be automatically reloaded. However, someone has subsequently freed the memory associated with that autoloadable parameter stub... > ==746398== Address 0x643b030 is 16 bytes inside a block of size 80 free'd > ==746398== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreloa > d_memcheck-amd64-linux.so) > ==746398== by 0x1907C9: zfree (mem.c:1871) > ==746398== by 0x1A80C3: freeparamnode (params.c:5818) > ==746398== by 0x1A4681: unsetparam_pm (params.c:3779) > ==746398== by 0x19206F: checkaddparam (module.c:1052) > ==746398== by 0x19209A: addparamdef (module.c:1065) > ==746398== by 0x192463: setparamdefs (module.c:1174) > ==746398== by 0x197E48: setfeatureenables (module.c:3367) > ==746398== by 0x197EC3: handlefeatures (module.c:3385) > ==746398== by 0x1F7CC5: enables_zshQsparameter (parameter.c:2333) > ==746398== by 0x193164: enables_module (module.c:1948) > ==746398== by 0x1936C6: do_module_features (module.c:2109) This is a normal module load sequence. I would imagine what it's doing is taking out the parameters marked as autoloads because it's putting in real parameters instead. The point where the invalid memory is being accessed is therefore apparently using an autoload stub when the full parameter has already been loaded. So is the code in question hanging onto a parameter pointer that it should instead be looking up again after some complicated intervening operation that happens to do the autoload? pws