From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26577 invoked by alias); 18 Oct 2016 21:26:05 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39677 Received: (qmail 8508 invoked from network); 18 Oct 2016 21:26:05 -0000 X-Qmail-Scanner-Diagnostics: from mail-lf0-f47.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.85.215.47):SA:0(0.3/5.0):. Processed in 0.358862 secs); 18 Oct 2016 21:26:05 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,SPF_PASS,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: seejay.11@gmail.com X-Qmail-Scanner-Mime-Attachments: |signature.asc| X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.215.47 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=to:from:subject:openpgp:message-id:date:user-agent:mime-version; bh=O2+djE4aZ21ti+NTMTTGHpjwXjsTZZL/maT4GZ7tzXQ=; b=sFm28h6ocFUV+61J71ue1XHQ62/V3/BJ3AGj9a4wYzKh7yHqq3YVg1Y5GsHupsUa6J xoCD+pDizphgNTZ1KBcn/mae93QqGIKpfR388JW2oOgp68hnR1t1dHeMz4t2UYlOi6S2 sxOYEsu54qvJEaqXFPI6HyUKuB1S1xL0mM/hAy770/4Z+WXi3A+MHkS40FSgiF7ANJb6 Wc2sQVocU7pH6apyA1ewHHf3jCz7Q6wiNIi25rjMU3SQQTXpfXWr12/Dd2AC4JLg99Th ngBaUagBaUERgeY5p1E8r2tsBUs9KlIbP67TaN38JQZm/vqK0m+bsk2LpaoP+OzdMJW6 OZ1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:from:subject:openpgp:message-id:date :user-agent:mime-version; bh=O2+djE4aZ21ti+NTMTTGHpjwXjsTZZL/maT4GZ7tzXQ=; b=RBH78kQuSIAjyOYthEm/2CmrQhdQyJpD7IY7VMSp2PaJTt1oyAEshtvkIMEq1U6+HW oV02C18pIS1YQ4eNAazHb4xY6tcJe88y54WARhVHKcG0OL538UFRtPPE3J8xqB/9dmLX 9uwGdHJd9DNrT/wvgAenvDUSfyommUxm/dE7jDsC4rT/CQ6nXq5EbSoJhWVUB5uKlSP3 bPhn23qY+C7dyltL4hdIod9iN5zTPJmdixrQe5evKSWAlOLa1F5cqMapECPqJ4DW4jZR HcJYN0f3rkOp8oVx0AQ5aP2kkAFOEcVGyGyirPqgIJd7kH5QIMv0vV4INrmz4U2kqkOb tVPA== X-Gm-Message-State: AA6/9RncJU0jNUCwkZGh1jtThojbQ6kpZtk/krvXqtNujqYqupCYHoSWgG/0q6o5NTHC4A== X-Received: by 10.25.15.169 with SMTP id 41mr200092lfp.19.1476793639624; Tue, 18 Oct 2016 05:27:19 -0700 (PDT) To: zsh-workers@zsh.org From: Charles Daffern Subject: zsh 5.2 build with --enable-stack-allocation crashes on large environments Openpgp: id=AF6C170E59E8276568DD539A2B02A98D99BB3683; url=https://keybase.io/score_under Message-ID: <5aa037f1-d019-8186-89f6-16a5a48d550a@gmail.com> Date: Tue, 18 Oct 2016 13:27:09 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="LbmBPrQktkpJ8KK3LlpvQ8TF7QmoJ9Vjv" --LbmBPrQktkpJ8KK3LlpvQ8TF7QmoJ9Vjv Content-Type: multipart/mixed; boundary="9E0dLEIpuVgTANV95OBPBsljDQHOVunh2"; protected-headers="v1" From: Charles Daffern To: zsh-workers@zsh.org Message-ID: <5aa037f1-d019-8186-89f6-16a5a48d550a@gmail.com> Subject: zsh 5.2 build with --enable-stack-allocation crashes on large environments --9E0dLEIpuVgTANV95OBPBsljDQHOVunh2 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, When building a copy of zsh 5.2 for personal use, I stumbled upon this rather unusual bug. You can reproduce it with something like this sequence of commands in the zsh 5.2 source directory: =2E/configure --enable-stack-allocation make x=3Dxxxxxxxx for i ({1..6}) x=3D$x$x$x$x export x Src/zsh -f The large environment variable causes zsh to crash on launch. Equally, a large number of environment variables has the same effect. Debugging shows this: 1. Program received signal SIGSEGV, Segmentation fault. 2. 0x000000000045cdbf in popheap () at mem.c:512 3. 512 hl->next =3D NULL; 4. (gdb) bt 5. #0 0x000000000045cdbf in popheap () at mem.c:512 6. #1 0x00000000004706f2 in createparamtable () at params.c:772 7. #2 0x00000000004495ef in setupvals () at init.c:1045 8. #3 0x0000000000449c9b in zsh_main (argc=3D, argv=3D) at init.c:1659 9. #4 0x000003fff71d1d1d in __libc_start_main (main=3D0x40f3a0
, argc=3D1, ubp_av=3D0x3ffffff8368, init=3D, fini=3D, 10. rtld_fini=3D, stack_end=3D0x3ffffff8358) at libc-start.c:226 11. #5 0x000000000040f2d9 in _start () It's having trouble dereferencing "hl", and it turns out there's a reason for that: 1. Breakpoint 1, popheap () at mem.c:502 2. (gdb) print h 3. $1 =3D (struct heap *) 0x3fff7fec000 4. (gdb) print heaps 5. $2 =3D (Heap) 0x3fff7fe8000 6. (gdb) c 7. Continuing. 8. 9. Breakpoint 1, popheap () at mem.c:502 10. (gdb) print h 11. $3 =3D (struct heap *) 0x3fff7fe8000 12. (gdb) print heaps 13. $4 =3D (Heap) 0x3fff7fe8000 The above breakpoint is on the munmap in popheap. The entire "heaps" variable is being freed at one point (because "h" is freed and they became equal for some reason). I'm not familiar enough with the code to figure out how this is happening though. The bug is triggered by the --enable-stack-allocation option to configure. Without that option, zsh works as expected. Apologies in advance for the formatting, Thunderbird still thinks it's in WYSIWYG mode and I'm not entirely sure how this email will end up when it churns out the plain-text form. Thanks, Charles Daffern --9E0dLEIpuVgTANV95OBPBsljDQHOVunh2-- --LbmBPrQktkpJ8KK3LlpvQ8TF7QmoJ9Vjv Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIcBAEBCAAGBQJYBhUlAAoJECsCqY2ZuzaDaiUP/R3v64YiC764E65WGTsJ1lw6 h6F8CqbhMNtPvY9ZYQB4nzbypMnfthQn8YR+n2O66J0ovx2gdA06wJUjTX4OUxLT Kh3R1qpa0BInkUnXhhQkbSEhCX0prx8YLyimDxLy0cZjomarxx+Mn0UvWnjwDYu3 mWWTWV2CPMOfIo6ICgjMNvkaK85caYT5v7Wh1T/vIgTKPNs5lnc0q2IanN9qfUuK Fv5pTUInh9z+aZqSwG1Aoy2n6BtbgryIdAmk/cgFW6QugyYn4qfc9daMxbscaidH dLoYE2+kyab7zB3wawAB3Q3iZ8rqIItL6Tok4eepgEKnwBhD2yZ0J7GDkwBqs3z0 WV3A3d9TsGCKBIYoKOwLnGA3ZhjEd+pJCFnCIR584qVApX48jdD8Y8ZQwHCC8Sfi iRtuQVzJ3oUY1pjblnB+B8XMLvjOmSjBArPd7+/goIO8hdS7TdUj0lPuVKD9YpFC YCUSuUckfkUivCa1+tDINS9PkuMWQFEB8tOdcoaRNK+mTyCgvHGhyhXqUiPx9Bim A5bSBqNbuPqIrO5BlPNR5jwycO21ZxlpPN5wHnzRZMUh4cfoI6UuP09K9sQuWLWH JlmydUIg5HjfigQouDz3omHBc/UlEysxPdBX7lhruthCEMO1y+w3OBenOu+9OvOo XENjnFFWu2xnB9gqmPl6 =QFSJ -----END PGP SIGNATURE----- --LbmBPrQktkpJ8KK3LlpvQ8TF7QmoJ9Vjv--