From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 162B92E86C for ; Wed, 16 Oct 2024 21:55:23 +0200 (CEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1729108523; b=HBj6bpA5LX6kcM9zzhCyWTQSBbB77EoQaLISskpW/go4U81Q7C/rpybDqIcyL2cQtqDJ0vn0vU AM1MnKwU393wrePX0o9DUuqiVfDM1GATbmI8xPX9uk+y2hwybtc1BiVxAZAwgccl/rWc84KhFA GYWSrrPviD9fz9zGyv5Z1ZXYIw4tdFpBXaEqv+Y+vfMtYn38J7B9Bbx2J6zm98RidmzYJw1218 qFV38MNlFuKCD5y+H40GT9+B3Molt3H5zqvvfG05d9KsbkPF2rVo33jVWSlzrrfwDthhNLHBs0 adQjTBAlz/qg2iWv6EKDeXaRN6ued8O30u7xNyiZuIZmrA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f43.google.com) smtp.remote-ip=209.85.218.43; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1729108523; bh=Jvcd4770TrEa3AoJ2vyZ6MQFIfrDqfAdC8VgvniREOc=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=ihAr730U25fmrA9i/nqTYO5Yhrv3UKrxL6/3kDdqUJsSFPIhlL7mHuEtBgVSFdTKJ6im+6oi1V y3gawNhc52g4w8/+3VxeAHNphiv7E229Shyp9mwxQboWUOhHyLqfyY/W/NNVWgIFQizBiTfEbC vyy1D+s0fZ0n7U1s83FClDDVgQzLny98N1TZrK2Ipuy3qDCfvySSJ//3aUDFrXVm2FLHSi17x+ Zv/g3YY5pFtt95B5WuQbx7dwZE5K6PQZQHQD6k8gUuFMxRrIsHmUk36G2CVdxCYHRBm4Ip5sti SuM6uBvmvmdld8W8tpBDW/uafnoNdMhuQ3D1aLsaDHoTiA==; 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:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=OBaxB43ITD1/6RCCmiWAt+s2kgtismvTGyJKOuVhvU8=; b=mtQMrqqLiODvVKEEgY+RHahGtc 02ZQB6/b/v7XOMRQsU4QKZcLUqMthC/0GJk6b1BanUGsXDL2VyjjHtW6yeIHpPTqnxdk9FerwTCNi nucCYZe3zv/t8mF7t2Lgf47AbACqfm8wcPKNI+cZRzrEz3+b9QqLtgWDp7GfJIOPOba3/mjzEgz66 Q6/lFE9lNjq7KgzjGTDjbPjlHDNRmdNbS3rAGGx43zAASy4DZgdaeNcybmgLNVOxyNPgOLTQCi2LL zj95ZD0PbndJ8oxx/E9ndGz9g++Ii79JWzZYVThc8jKWQEASeN3wQYR6covFmd5gFAM+C+UAMCzVA b8C19oqQ==; Received: by zero.zsh.org with local id 1t1A78-000KLe-VJ; Wed, 16 Oct 2024 19:55:23 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f43.google.com) smtp.remote-ip=209.85.218.43; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ej1-f43.google.com ([209.85.218.43]:39664) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1t1A6o-000K2T-Ft; Wed, 16 Oct 2024 19:55:05 +0000 Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a9a1b8d45fcso2774666b.2 for ; Wed, 16 Oct 2024 12:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1729108502; x=1729713302; darn=zsh.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=OBaxB43ITD1/6RCCmiWAt+s2kgtismvTGyJKOuVhvU8=; b=BdcLDlZl6cUkarMFlIbmiHwUYqBQCt06o3yuW9DvenzUllPAilbYk1NcLAKh2DH0S3 gyaKEWHzKQgDRJK75ixucI27+bHeOjb3WQRU2GLYmNqzBmaU1sdm8SssMtFvt6Rs9gan GU2Sz4mdZqdx8EXzGBPvFNRiZ+IVG1DI+CHKO4gkxyZu25Qh8+XD6NaexXw+bZcfc7J9 0SAVUCLW5uOsCXB3sUb9/8a3VO/hWRrVd8H8fLgm4RI9da/JOZ8ku8KlgG9qKd6XR3hC ecjFejFp//BPju3GslocQNMqIdPkF1JOxY7DyjL5+jXmz5oZhvWzSft/UTiF2pKtqoQb RtKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729108502; x=1729713302; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=OBaxB43ITD1/6RCCmiWAt+s2kgtismvTGyJKOuVhvU8=; b=rgCbJAytTGxvoO9k1epPdDcIi0GD+EpaeAKJxAt+cVZ7ExfCws/XBdM4AHhxoe0kDa iMPBemh6uLeS5a0nBMsMpoMaYAyPV6pc36Xc1bxbjDMhksP+GemJaRPv96DYTB9w/XuW B/AM6LK/CxBAC2cqzz7DeSxdD2KexNY+Duds/QxcC2VMqF2zza1yoiEATDgSpE21Zx3j 5u2+wC3ypL1bWp9ZyUWGU1U68iDuXTqrzML9dKD/03plfYfpqgypAnHSB2nG7aQnDd+O O/En/MlHpLfij5y0pd2UnuSy0OF7y8M3nIn3cjl38vXqzan0PTU0V7NHIqn2F/JbmWGZ isHQ== X-Gm-Message-State: AOJu0YxUeD052uzGnOaY4oTt5VqW91rWLbuUKXqJDz1gck+iow4+AimX KvmiJPtFmfn55+ez/jBm+15cagdUT4HqIqTAEvgR7me51u75emoPbbDX1eKKVLxOi0uDuw20GqT RqL4cLBrV+haQWMLyG9BwcamquHB/CTUYP+Xh X-Google-Smtp-Source: AGHT+IEc8LJYNXxaIKS1NMahcsVJOQXZW8Ao72Gw4Zmg8dV+ZRoVuQmg6VmntL3ekXTEDEO48NbAs/NdBL8k/uMX3X0= X-Received: by 2002:a17:907:9485:b0:a9a:3c91:5e2d with SMTP id a640c23a62f3a-a9a4ebb33f5mr27355966b.1.1729108501564; Wed, 16 Oct 2024 12:55:01 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bart Schaefer Date: Wed, 16 Oct 2024 12:54:50 -0700 Message-ID: Subject: Re: [BUG] crash when I unset and redefine a function within itself To: Gilles Cc: zsh-workers@zsh.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 53146 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 Wed, Oct 16, 2024 at 10:56=E2=80=AFAM Gilles w= rote: > > zsh -c 'foo () { unset -f foo; foo () { echo redefined; }; }; foo' > [1] 89793 segmentation fault (core dumped) zsh -c 'foo () { unset -f = foo; foo () { echo redefined; }; }; foo' > > This works with zsh 5.8.1 on Ubuntu 22.04 and older versions. This is due to commit ca6f4466e661f185d083e09c55fb93d16e0736cc: 45131: Make a function that redefines itself preserve its tracedness. Fix is straightforward; "tracedness" can't be preserved across unfunction: diff --git a/Src/exec.c b/Src/exec.c index 8aa7466f5..bc07e8c39 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -5504,7 +5504,8 @@ execfuncdef(Estate state, Eprog redir_prog) if (funcstack && funcstack->tp =3D=3D FS_FUNC && !strcmp(s, funcstack->name)) { Shfunc old =3D ((Shfunc)shfunctab->getnode(shfunctab, s)); - shf->node.flags |=3D old->node.flags & (PM_TAGGED|PM_TAGGED_LOCAL)= ; + if (old) + shf->node.flags |=3D old->node.flags & (PM_TAGGED|PM_TAGGED_LO= CAL); } shfunctab->addnode(shfunctab, ztrdup(s), shf); }