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.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 21580 invoked from network); 23 May 2021 06:18:37 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 23 May 2021 06:18:37 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1621750717; b=X7OaaYA54wB6TwRIjTQGI2iG2TdMeLNleyEGfCiFVOsIK1SnXZPak1gFuUAf7BO16D1ro2Tb4Q FGyyc5dK8euxKOZgbe7+BGkEzJ8OG8qD0Ga8QrCdK54LeMnKNKWrVKWyFYXQiXhfsQDYtS2Xt2 KxWNFXg1DtzCO/y4QLbbCTkvnS5iQpWiipIeyuW3VGnXo5bvnTNVsVXbnGuRSeI6UyB37Xn+E5 lZR41pWz5jcMTpfXwYEmyTg124NnHYbTTNl/J0XI/pBFdXqHmveqwhzKs4suKKWRLPqJc2POS2 pVkdnVI0QfrSJ1KJh0sQuM3bnvS1eQzkTiWBBhUea6ZaKA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (relay8-d.mail.gandi.net) smtp.remote-ip=217.70.183.201; dmarc=none header.from=chazelas.org; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1621750717; bh=/geSYUBTyNG9L6nu7FCp4nBE48Zy52nSwF4xrmZUUMM=; 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=IorT7Pz6JzJX6r5CJukClhSm0eN9kqxX1HtiWBwAVeR2Nltdsq+BIOGKYTKn/sUec6qc/GI9Pk lSC/VoI9OtnvKmYBEbUnqVznclmzEreXrthMPqWRdilrBY6114w/aZSXUBqMfuwlrHjyacTZtZ ciEAGz1mZ0tf3BkWf06N+cab6b186WMgVJ0JDdw+aMORW5uEoiySKsgb7xdbRQ/Wbv4KvzLrAe gwK1/krdI2/kYQhDWya0bNe+y0O9r76FcF0EQMNJd0K3N3vxHTE9ObaaDVGfK6pISOONoyTAdd jeFFGq9RV2xCCM6UbfW1tQA95np36Jfm5Z0pbXiyz1ZMfA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; 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=VlnjTjAzW4/DoaHTI8d9WxL6hI4csjK2kqbL+/Thkn4=; b=w8buN49vsbaYVPFwo83JquQFyV aRCeY8U9jkgRUw9kRtEXd4PV1GVKPyp7MfxOf/UmIQY9nbwvFcUk93gvCnmJB78L2eiVC/oqSQI35 DAsmekEDjRib1R9zMP4EfP2oSYb2AydHUNQdFefJ6yphpjOCqeTnperQV9HX59cqTsfroNvrIbDk1 jgl7A7PKoF99xfV2VPGMMkDZiDYZIJL/TQ382yyw34VR+I2l0J+vFqpvrDhQUR8nHB+ZyivOteonQ dwvZVlsyzUTSt1m+TTLAJzEqAk9X/8riOXxoFXu0rgw392KXM9fwmDWTJk9+f/TQuahNjZ7c8hSmN brr3LpOg==; Received: from authenticated user by zero.zsh.org with local id 1lkhRc-000P8J-IR; Sun, 23 May 2021 06:18:36 +0000 Authentication-Results: zsh.org; iprev=pass (relay8-d.mail.gandi.net) smtp.remote-ip=217.70.183.201; dmarc=none header.from=chazelas.org; arc=none Received: from relay8-d.mail.gandi.net ([217.70.183.201]:34343) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1lkhRP-000OrU-8a; Sun, 23 May 2021 06:18:24 +0000 Received: (Authenticated sender: stephane@chazelas.org) by relay8-d.mail.gandi.net (Postfix) with ESMTPSA id 201F11BF204 for ; Sun, 23 May 2021 06:18:21 +0000 (UTC) Date: Sun, 23 May 2021 07:18:21 +0100 From: Stephane Chazelas To: Zsh hackers list Subject: [bug] segfault upon empty argv[] Message-ID: <20210523061821.tsqq4p3saux477yg@chazelas.org> Mail-Followup-To: Zsh hackers list MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Seq: 48902 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: Running zsh with an empty argv[] (not even argv[0]), here using perl: $ echo 'echo "$0"' | strace -e execve perl -e 'exec { "./Src/zsh" } ()' execve("/usr/bin/perl", ["/usr/bin/perl", "-e", "exec { \"./Src/zsh\" } ()"], 0x565047233358 /* 51 vars */) = 0 execve("./Src/zsh", [], 0x561425bbf300 /* 51 vars */) = 0 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} --- +++ killed by SIGSEGV (core dumped) +++ zsh: done echo 'echo "$0"' | zsh: segmentation fault (core dumped) strace -e execve perl -e 'exec { "./Src/zsh" } ()' (gdb) bt #0 __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65 #1 0x00005555555bb72d in init_jobs (argv=0x7fffffffde98, envp=0x7fffffffdea0) at jobs.c:2035 #2 0x00005555555b5102 in zsh_main (argc=0, argv=0x7fffffffde98) at init.c:1722 #3 0x000055555556bd65 in main (argc=0, argv=0x7fffffffde98) at ./main.c:93 To be fair, few shells (or other utilities) handle that pathological case. bash, mksh do and their $0 expands to bash, mksh respectively (regardless of the basename of the interpreter being executed which means bash is not running in sh mode when /bin/sh is executed for instance, but that's fine as argv[0] is not sh and doesn't end in /sh anyway and there's no portable way that I know to get the path by which you've been executed). And dash: $ echo 'echo "${0-unset}"' | perl -e 'exec { "dash" } ()' unset $ echo 'echo "${0-unset"' | perl -e 'exec { "dash" } ()' sh: 2: Syntax error: Unterminated quoted string ($0 unset but name falls back to "sh" in error messages at least) -- Stephane