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,T_SCC_BODY_TEXT_LINE 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 A92AB25081 for ; Fri, 9 Feb 2024 19:04:39 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1707501879; b=SDhfNoIyfWC9tUuUFb7uHbggD93fxx+ojqpq2jnvEYDIQ45rV4zYUjB+hOueSRxkBlgmHPfuqb LCDdlF7jroyBeFkUa7jhqyvYvfmiM8MgpXXVL8M615tRukM4mrpckX8BE6JSFMUJdQGTC0vp3I mM1YJWR34uAp8E5o1B7NyvfTtnUh8VLbDwA8XUoGzCss0Dt5eMf13imz3KJaXtX/GBbsaroP82 USUGZzio8Wdh4PsXTTgxLZrinyhpVkgMlvQWqIn+lvTa5u89v04ZqOuorsexZIQ0hMyurNVp1M 0Aa6qUUwAfnYIpP2vcPI5Q7d4W2378NHRWyEoKR6TxQx/w==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (relay4-d.mail.gandi.net) smtp.remote-ip=217.70.183.196; dmarc=none header.from=chazelas.org; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1707501879; bh=kuu6tkFdTf9GQoXseIkX+H3p0pAVfF9Rd8x3Nsg0vXo=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:MIME-Version:Message-ID:Subject:To:From:Date: DKIM-Signature; b=EQ+3NJK2t7P29mxbI88fVligdN90wZMZANxb95910oQLIbim0cdCxcWzwuEAm2iw7aGLhUWfI2 UYLUdB+VluMDlAb9JT4iB+qaCCoJDuSrX+mHssjIA4JN19tIQzr4Uyg611RfchT19uWRzEPzx/ OW4cMM8b7aeVdtYxB0gSkFi5EQsShrnwmcEB5Ce8XdX8V+Kcp2eOC4hREjxmdPiKYYy4DyjsAr PfZVt04SC0av3pIQ0ZpBjITgXMILlLqSNalQJY2W0ToMYEf3hqy4apnbnonO3XnfW/p55u7Za5 d08vAPKbWs24sKg54u2nZpcMBQExSChjWRBwSLyNJWepUg==; 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-Type:MIME-Version:Message-ID: Subject:To:From:Date:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=M9JDEBTIKHtpHrFGlEShU6PC5G19jM6Zak/fPUabAf0=; b=dmF+VDzVGFsJfk67xsjgSgdcT0 tG+Tk6iQKPlo72vlmQnPOOqP0LkHY+tm/91sesAVi6uyXuA9r5xPRD4F532PBeD//jdWuT/VJNb4H Hvc1OWFW1X3dE2Q4cR8KtyA/NtxQ+G+f3/ZfxuYBwkB1sf2W0QuypdEYHPU9tlAtiFKvMvBe/LNJN hQiVZYlk9sHo+HjlfhkhJZLuzQgGMCD5bdwMBTJBhzwJdo9mKJmRCvcbwXCAPveVopTHE5Q3xbf/6 1iNmDqUFvT92ovS8y6Bz9SM8EXfRATY+77tITHL4lG5Zu00SGYQ3KqBXyZ+VTTqOR6RU1lV/Iew7u 1/kCNsIw==; Received: by zero.zsh.org with local id 1rYVEr-000JZw-Fo; Fri, 09 Feb 2024 18:04:37 +0000 Authentication-Results: zsh.org; iprev=pass (relay4-d.mail.gandi.net) smtp.remote-ip=217.70.183.196; dmarc=none header.from=chazelas.org; arc=none Received: from relay4-d.mail.gandi.net ([217.70.183.196]:47989) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1rYVEE-000JG3-7z; Fri, 09 Feb 2024 18:03:59 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 3CA5EE0006 for ; Fri, 9 Feb 2024 18:03:57 +0000 (UTC) Date: Fri, 9 Feb 2024 18:03:56 +0000 From: Stephane Chazelas To: Zsh hackers list Subject: [BUG] segv and random behaviour with $terminfo for TERM=qnx Message-ID: <20240209180356.3mbrzarqpctzbrzq@chazelas.org> Mail-Followup-To: Zsh hackers list MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-GND-Sasl: stephane@chazelas.org X-Seq: 52525 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: $ TERM=qnx zsh -c 'echo "${(kv@)terminfo}"' zsh:1: failed to find end of command substitution $ TERM=qnx zsh -c 'echo "${terminfo[(r)x]}"' zsh: segmentation fault TERM=qnx zsh -c 'echo "${terminfo[(r)x]}"' Seems to be down to some of the capabilities there having 0xff bytes. I can reproduce different though still random behaviour with a simplied entry based on that of qnx: $ cat a test, kext=\377\270, kf1=\377\201, kf10=\377\212, kf11=\377\256, kf12=\377\257, kf13=\377\213, kf14=\377\214, kf15=\377\215, kf16=\377\216, $ TERMINFO=test1 tic a $ TERMINFO=test1 TERM=test zsh -c 'echo "${terminfo}"' zsh:1: bad pattern: no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no no 191 53 \M-^?\M-^A \M-^?) \M-^?\M-8 \M-^?\M-. \M-^?\M-/ \M-^?) \M-^?$ \M-^?= \M-^?| With current zsh git head built with debug I get: $ TERM=qnx ./Src/zsh -c 'echo "${terminfo[(r)x]}"' BUG: substring ends in the middle of a metachar in ztrsub() Which may give a clue as to what's going on. Breakpoint 3, ztrsub (t=0x7ffff7fc10e2 "", s=0x7ffff7fc10e2 "") at utils.c:5166 5166 fprintf(stderr, "BUG: substring ends in the middle of a metachar in ztrsub()\n"); (gdb) bt #0 ztrsub (t=0x7ffff7fc10e2 "", s=0x7ffff7fc10e2 "") at utils.c:5166 #1 0x000055555560034b in patallocstr (prog=0x7ffff7fbf600, string=0x7ffff7fc10e0 "\377\203", stringlen=2, unmetalen=-1, force=0, patstralloc=0x7fffffffc140) at pattern.c:2149 #2 0x0000555555600711 in pattryrefs (prog=0x7ffff7fbf600, string=0x7ffff7fc10e0 "\377\203", stringlen=2, unmetalenin=-1, patstralloc=0x7fffffffc140, patoffset=0, nump=0x0, begp=0x0, endp=0x0) at pattern.c:2323 #3 0x0000555555600568 in pattry (prog=0x7ffff7fbf600, string=0x7ffff7fc10e0 "\377\203") at pattern.c:2225 #4 0x00005555555e1f2b in scanparamvals (hn=0x7ffff7fc0ad0, flags=273) at params.c:652 #5 0x00007ffff7fb496c in scanterminfo (ht=0x55555567dae0, func=0x5555555e1d7c , flags=273) at terminfo.c:285 #6 0x00005555555acf12 in scanmatchtable (ht=0x55555567dae0, pprog=0x0, sorted=0, flags1=0, flags2=16777216, scanfunc=0x5555555e1d7c , scanflags=273) at hashtable.c:386 #7 0x00005555555ad1e8 in scanhashtable (ht=0x55555567dae0, sorted=0, flags1=0, flags2=16777216, scanfunc=0x5555555e1d7c , scanflags=273) at hashtable.c:449 #8 0x00005555555e206f in paramvalarr (ht=0x55555567dae0, flags=273) at params.c:674 #9 0x00005555555e213c in getvaluearr (v=0x7fffffffc810) at params.c:692 #10 0x00005555555e485e in getarg (str=0x7fffffffc618, inv=0x7fffffffc624, v=0x7fffffffc810, a2=0, w=0x7fffffffc610, prevcharlen=0x7fffffffc604, nextcharlen=0x7fffffffc600, flags=256) at params.c:1660 #11 0x00005555555e5690 in getindex (pptr=0x7fffffffc6a0, v=0x7fffffffc810, flags=256) at params.c:1970 #12 0x00005555555e5ff2 in fetchvalue (v=0x7fffffffc810, pptr=0x7fffffffc850, bracks=1, flags=256) at params.c:2222 #13 0x000055555561529d in paramsubst (l=0x7ffff7fbf4f0, n=0x7ffff7fbf520, str=0x7fffffffccf0, qt=1, pf_flags=0, ret_flags=0x7fffffffcebc) at subst.c:2743 #14 0x0000555555610455 in stringsubst (list=0x7ffff7fbf4f0, node=0x7ffff7fbf520, pf_flags=0, ret_flags=0x7fffffffcebc, asssub=0) at subst.c:322 #15 0x000055555560f4da in prefork (list=0x7ffff7fbf4f0, flags=0, ret_flags=0x7fffffffcebc) at subst.c:142 #16 0x00005555555977f7 in execcmd_exec (state=0x7fffffffd840, eparams=0x7fffffffd430, input=0, output=0, how=18, last1=1, close_if_forked=-1) at exec.c:3282 #17 0x0000555555594034 in execpline2 (state=0x7fffffffd840, pcode=131, how=18, input=0, output=0, last1=1) at exec.c:2016 #18 0x0000555555592803 in execpline (state=0x7fffffffd840, slcode=4098, how=18, last1=1) at exec.c:1741 #19 0x0000555555591937 in execlist (state=0x7fffffffd840, dont_change_job=0, exiting=1) at exec.c:1495 #20 0x0000555555590fdf in execode (p=0x7ffff7fbf458, dont_change_job=0, exiting=1, context=0x555555634326 "cmdarg") at exec.c:1276 #21 0x0000555555590eb6 in execstring (s=0x7fffffffde09 "TERM=qnx; echo \"${terminfo[(r)x]}\"", dont_change_job=0, exiting=1, context=0x555555634326 "cmdarg") at exec.c:1242 #22 0x00005555555bc793 in init_misc (cmd=0x7fffffffde09 "TERM=qnx; echo \"${terminfo[(r)x]}\"", zsh_name=0x7fffffffde02 "zsh") at init.c:1524 #23 0x00005555555bdfd9 in zsh_main (argc=3, argv=0x7fffffffda58) at init.c:1914 #24 0x000055555556bd39 in main (argc=3, argv=0x7fffffffda58) at ./main.c:93 Cheers, Stephane