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,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 25435 invoked from network); 9 Aug 2021 02:10:47 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 9 Aug 2021 02:10:47 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1628475047; b=bMoYs0gYVVu5YyeMySCNJjoiovlcHKDcFnvfxjU2bpzG6TPaMn6Pt/TNJuRQdyPRhUONqURnAF 6gu7I2+MrSiHalS9HoCv1XUr8S/ZB15YaiUoW0wHNhxp5hgHWlfILJvtLNQQt52mOE7edUit6I JrxZiTOv0O/1K4/dpeaqcJywMYRvYLUdz774PypmbxQ/QVX4XLwf+Ri8d7O6pu8OUeV2suU4FT lvhqKeT53rjqR5AluwDrti3nKjg2mkc2b+P7XHtnC0fqjHgTEZEhqUbmSn82AmO5I9LFh1hn26 s3rd0DcAS7TtLrvaaUXVAFMrp+Y8TacJZzFUE2zdPDmtaQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-vs1-f46.google.com) smtp.remote-ip=209.85.217.46; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1628475047; bh=S6JhRqYnQXl7DhOSW2C9PR7rMVHSqG/JVmsnCN6u+kw=; 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:References:In-Reply-To:MIME-Version:DKIM-Signature: DKIM-Signature; b=ZR+0tUFx2t5SRm0x5lJ9RnvGI/2U27omkVcLEmkSqUlp8wuERRigZBZNeu5MMR34kn6/j5CiOj vAlfIigE+A6W5HhJcoLzFsaeFIDBACFWVOUWNNGbHL2Z+ghaixeXKP4oUBvfOfiUB9OuKChuUJ iXQy1lMf4T9ojdT+o9REcfresGocDqNNz8AJZGZBtxYKLhzQ9f+2/xvnfgMbaUHaUle4Bp3SOE jj+8RzanI1Eq8jTX4BJVUYStO7kFJVvbCTSfGzDsQHCPF8W9gS+UYSUDAj4N0M7D+6NrZ49D7H uGo+810zLanNYzJmHjpc7jaPRKiZaWyDFheZ4kveCMKXQQ==; 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:References:In-Reply-To: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=AUEkkEMjv726WQ3WJsbsU83elBl+jCufRf6yjbCttoM=; b=gKmfu7mFUGDux87X+RP9GIKNv4 0Hl0OZ4rO6ty53wSyBbm3asm1pK9vm7E6mrf/8KIMO1kRTx8pV7djGvOeEo5rYIaMCxkrmmmfrFAX Ox27FMhlXmVRQiBD8jnB6zVN4X239ZCeV9So3MLFdvPf/dP3KlFViSbDMIUhjmFXZre6N0vY83ikR h4cH9t1Xe2hosWYiSzOYe1XSSGjZQ2gVDNydUUshKSScTJM5x/2mVtDWHUvqK7miXrW9oltwwUyYh SiTTVCxV4QzPHlOpE62+gIoPrv7A9VlqF+RmDW4hTubc8/TEOoBeN/co+HQuQRPwqZd19RHWmciA2 zW+fu3bg==; Received: from authenticated user by zero.zsh.org with local id 1mCukX-0001NQ-TI; Mon, 09 Aug 2021 02:10:46 +0000 Authentication-Results: zsh.org; iprev=pass (mail-vs1-f46.google.com) smtp.remote-ip=209.85.217.46; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-vs1-f46.google.com ([209.85.217.46]:37586) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1mCujz-00013n-4z; Mon, 09 Aug 2021 02:10:11 +0000 Received: by mail-vs1-f46.google.com with SMTP id a8so9147307vsl.4 for ; Sun, 08 Aug 2021 19:10:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=AUEkkEMjv726WQ3WJsbsU83elBl+jCufRf6yjbCttoM=; b=dlBZiSS8HWmtI1QJWmgI4iAZ0/8HUhDcv5SiycEgByNqykP3UCPytJ2b8jMi5AiRXU EMpZcMa5AdodU+YH5xUQ+4NqNAZDCoISZpe8lo1XUrYgTEULg+ycGAHn7vvUsBj6aohJ fUnjaLtHYSPeyFUnHwKa/A844fpsNVYGjITidEPeYaLAh+wuBhR7kZ6BSU3F5UHA1ciV x8crOMf5fPQDxtmwA02nuk057pMjHA3LFtpgnyEgu3NkbIYoN/xj1oA+rwIQNAGTPMNu JRv33XZVvH9bxgeiqDevID44HtI5ncsuCpW5cPNCXmakasu4v5nRRNIOZalpv7fYWHvD vWeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=AUEkkEMjv726WQ3WJsbsU83elBl+jCufRf6yjbCttoM=; b=J0lEmMV7Qq7LGB8P/8zVh2uKYqlQEus+zqY7qNDVX7WBAU8lEbt0CFDqrkI3ZGkbgI XalexmgAwjPlXMt6xynxfHXupB9itCYzujbcBqicCBUpdrVzsD9rbi8GnXouAkc/a7J8 BWYxqMJ8H4elx8bG0hr/FTBw7R2rOqgPQJ83Hw5gnYoH/zHlV15jx5ct8JhF6YS/SEh2 Df8IcBaGjcbOcGgOzuTEDHdvIj0lV/qPKowXu78zr2WQlTH8G4xG78xnL2VDJ+oNix6R oippx5SS09LZqc8WDaMrvk3DYEd5kSmyTZe3qAiqCeLsD5KyLwnXoT+f5IDGwA9a2daF Lamg== X-Gm-Message-State: AOAM532WOkZShA2PoWvcbSmr2B49sTWTo4teTfAQwUdqwySTQy9nS8/O gIGSDR/QrNCG/KRaUtIzdCXAsYc+rs7Dqivkc/0= X-Google-Smtp-Source: ABdhPJxMgZyvdZ4NuiJzehMkNzwlJojM5YsdHH+yAG5QhFWutlCMqtDfn9Mwk7ibDh1zjRh5+yqFyr2KEUzbvodvCHE= X-Received: by 2002:a67:be10:: with SMTP id x16mr630388vsq.19.1628475007038; Sun, 08 Aug 2021 19:10:07 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:ab0:1508:0:0:0:0:0 with HTTP; Sun, 8 Aug 2021 19:10:06 -0700 (PDT) In-Reply-To: References: From: Mikael Magnusson Date: Mon, 9 Aug 2021 04:10:06 +0200 Message-ID: Subject: Re: getjobtext() gives invalid utf8, leading to segfault To: Carl Agrell Cc: zsh-workers@zsh.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 49265 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 8/8/21, Carl Agrell wrote: > With the powerlevel10k prompt, running either of these two commands > causes the shell to segfault: > $ > AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=E6= =9C=88=E5=85=89 > $ > AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= =E6=9C=88 > The AAAs can be replaced with anything as long as the length is > unchanged (did not test with non-ascii though). Changing the kanji at > the end usually makes it not crash, strangely enough. > > A minimal zshrc creating the same crash is > _preexec() { > [[ $2 =3D=3D "" ]] > } > preexec_functions=3D(_preexec) > > If we echo $2 instead of comparing it, it is printed as > AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= =E6=9C=88=EF=BF=BD > hinting that it's a multibyte error. Curiously, /bin/echo instead > gives =E6=9C=88=E5=85=83 at the end. > > Looking through the source, it looks like this string is created by > getjobtext(). This hints that similar errors might be seen in other > places where jobs are displayed, and indeed: > $ cat /dev/stdin > AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=E6=9C=88 > ^Z > zsh: suspended cat /dev/stdin > AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=E6=9C=83 > > I am running `zsh 5.8 (x86_64-pc-linux-gnu)`, the one that is current > packaged in Arch Linux. Running in debug mode prints the message: BUG: substring ends in the middle of a metachar in ztrsub() and breaking here in gdb gives the following backtrace: (gdb) bt #0 ztrsub (t=3D0x7ffff7fe91fd "", s=3D0x7ffff7fe91fd "") at utils.c:5187 #1 0x0000000000496ac6 in patallocstr (prog=3D0x701320, string=3D0x7ffff7fe91b0 'A' , "=E6=83=BC\203\250=E5= =83=A5\203", stringlen=3D77, unmetalen=3D-1, force=3D0, patstralloc=3D0x7fffffffc9b0) at pattern.c:2= 138 #2 0x0000000000496ec1 in pattryrefs (prog=3D0x701320, string=3D0x7ffff7fe91b0 'A' , "=E6=83=BC\203\250=E5= =83=A5\203", stringlen=3D77, unmetalenin=3D-1, patstralloc=3D0x7fffffffc9b0, patoffset=3D0, nump=3D0= x0, begp=3D0x0, endp=3D0x0) at pattern.c:2312 #3 0x0000000000496ce0 in pattry (prog=3D0x701320, string=3D0x7ffff7fe91b0 'A' , "=E6=83=BC\203\250=E5= =83=A5\203") at pattern.c:2214 #4 0x000000000042cbca in evalcond (state=3D0x7fffffffcfc0, fromtest=3D0x0) at cond.c:322 #5 0x000000000043c36d in execcond (state=3D0x7fffffffcfc0, do_exec=3D0) at exec.c:5122 #6 0x0000000000430dee in execsimple (state=3D0x7fffffffcfc0) at exec.c:127= 6 #7 0x000000000043126c in execlist (state=3D0x7fffffffcfc0, dont_change_job=3D1, exiting=3D0) at exec.c:1404 #8 0x0000000000430aa3 in execode (p=3D0x7198f0, dont_change_job=3D1, exiti= ng=3D0, context=3D0x4c7eea "shfunc") at exec.c:1218 #9 0x000000000043ebec in runshfunc (prog=3D0x7198f0, wrap=3D0x0, name=3D0x7ffff7fe9170 "preexec") at exec.c:6066 #10 0x000000000043e41e in doshfunc (shfunc=3D0x719310, doshargs=3D0x7ffff7ff4b50, noreturnval=3D1) at exec.c:5916 #11 0x00000000004b5ce6 in callhookfunc (name=3D0x4ca0cb "preexec", lnklst=3D0x7ffff7ff4b50, arrayp=3D1, retval=3D0x0) at utils.c:1530 #12 0x0000000000457022 in loop (toplevel=3D1, justonce=3D0) at init.c:198 #13 0x000000000045aee1 in zsh_main (argc=3D2, argv=3D0x7fffffffd638) at ini= t.c:1799 #14 0x000000000040f9d6 in main (argc=3D2, argv=3D0x7fffffffd638) at ./main.= c:93 --=20 Mikael Magnusson