From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17086 invoked by alias); 19 Oct 2016 09:02:45 -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: 39678 Received: (qmail 19107 invoked from network); 19 Oct 2016 09:02:45 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.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(210.118.77.12):SA:0(-0.3/5.0):. Processed in 0.473491 secs); 19 Oct 2016 09:02:45 -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=RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7f5-f79ce6d000004c54-3e-5807344effaa Date: Wed, 19 Oct 2016 09:52:27 +0100 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: printf %q segfault Message-id: <20161019095227.280cfca1@pwslap01u.europe.root.pri> In-reply-to: <20161018205715.09036030@ntlworld.com> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: quoted-printable X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsWy7djPc7p+JuwRBn9+6FscbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujBt/ZjEXPOStuNPcz9jA+Ieri5GTQ0LARGLyghZWCFtM4sK9 9WxdjFwcQgJLGSU+ru1nhHB6mSTW3uxkh+loXHCSGSKxjFFiyf9DUC3TmCQ2PjkM5ZxhlLi3 eSIrhHOWUWL5rm9g/SwCqhI/tj4B28gmYCgxddNsRhBbREBc4uza8ywgtrCAvMT1iY1A9Rwc vAL2End6VEHCnALGEhu2/AQr5xfQl7j69xMTxEn2EjOvnAGL8woISvyYfA9sDLOApsTW3evZ IWxtiSfvLoDdIyHQzC7RfGomE8h8CQFZiU0HmCHmuEjMaOlhgbCFJV4d3wL1sozE5cndUPF+ Rokn3b4Qc2YwSpw+s4MNImEt0Xf7IiPEMj6JSdumM0PM55XoaBOCKPGQWH1vBtQcR4nnzzuY JjAqzkJy9iwkZ89CcvYCRuZVjCKppcW56anFpnrFibnFpXnpesn5uZsYgYng9L/jX3cwLj1m dYhRgINRiYfXw5otQog1say4MvcQowQHs5IIb4Uhe4QQb0piZVVqUX58UWlOavEhRmkOFiVx 3j0LroQLCaQnlqRmp6YWpBbBZJk4OKUaGLfe6dNfJ1Ru3XnbX2D3/rjT/LxKy/+f8Dj/+8LF 5K9pPGZhNl6TrxkZtRbwMksE9y9S1Miur/MWeZJY49P0S/Rz/426D+eYjh06mqf+tS1ItpdJ iqVi456Z1b3u7wuPNR48u3DzNj5FoaRkWw9Zxesvjl10rg6aF/tuF4NqD8fBVNe8iW/TlFiK MxINtZiLihMBSU2+JQADAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGIsWRmVeSWpSXmKPExsVy+t/xa7qaJuwRBjMf21gcbH7I5MDoserg B6YAxig3m4zUxJTUIoXUvOT8lMy8dFul0BA3XQslhbzE3FRbpQhd35AgJYWyxJxSIM/IAA04 OAe4Byvp2yW4Zdz4M4u54CFvxZ3mfsYGxj9cXYycHBICJhKNC04yQ9hiEhfurWfrYuTiEBJY wijxdsdjKGcGk8SjjgYmCOcco8TnR92sEM5ZRomXa/azgfSzCKhK/Nj6hBXEZhMwlJi6aTYj iC0iIC5xdu15FhBbWEBe4vrERvYuRg4OXgF7iTs9qiBhTgFjiQ1bfjJCzPzHKPHs7zawOfwC +hJX/35igrjPXmLmlTNgM3kFBCV+TL4HNpNZQF1i0rxFzBC2tsSTdxfAeoWA4jfu7mafwCg8 C0nLLCQts5C0LGBkXsUoklpanJueW2ykV5yYW1yal66XnJ+7iREYR9uO/dyyg7HrXfAhRgEO RiUeXg9rtggh1sSy4srcQ4wSHMxKIrwVhuwRQrwpiZVVqUX58UWlOanFhxhNgQEzkVlKNDkf GON5JfGGJobmloZGxhYW5kZGSuK8Uz9cCRcSSE8sSc1OTS1ILYLpY+LglGpg3LJGpNhSSOft g+1/Ty04+P7A++qeEhY9NZEA2299jz9nfglus7cqF/63xMHgtGh622ynm/VBizcwL+XYmfxC 99Yb3gt+aoGq1ec3xjpMX5O30s2uaqHNjGPRdiUsD8yeS//k+LCLyYGPpbj8tpyI34+ovz82 1N/0+CN22OlMZ/jDZbs/aM4rUGIpzkg01GIuKk4EAIDCyem5AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20161019085230eucas1p11018f7afae786cbf78cf5bb886c73f3c X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20161018200323eucas1p1270cf7c97828ba75c5bde02126a103c7 X-RootMTR: 20161018200323eucas1p1270cf7c97828ba75c5bde02126a103c7 References: <20161016160312.GA695@fujitsu.shahaf.local2> <20161018205715.09036030@ntlworld.com> On Tue, 18 Oct 2016 20:57:15 +0100 Peter Stephenson wrote: > On Sun, 16 Oct 2016 16:03:12 +0000 > Daniel Shahaf wrote: >=20 > > lolilolicon wrote on Sun, Oct 16, 2016 at 22:58:14 +0800: > > > The following produces segmentation fault: > > >=20 > > > printf '%q' =E4=BD=A0 > >=20 > > The reason 0xA0 is output literally is that the code takes the "if (ito= k(*u))" > > branch in quotestring(); if it didn't take that branch, it'd behave > > correctly. > > mumble I don't think we need the utils.c hunk. We shouldn't meet an unmetafied token when the input is handled properly, unless the input actually is still tokenised. There's at least one place where this does happen, I think down in completion. pws diff --git a/Src/builtin.c b/Src/builtin.c index 8b8b217..2db739f 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -4874,9 +4874,10 @@ bin_print(char *name, char **args, Options ops, int = func) break; case 'q': stringval =3D curarg ? - quotestring(curarg, QT_BACKSLASH_SHOWNULL) : &nullstr; + quotestring(metafy(curarg, curlen, META_USEHEAP), + QT_BACKSLASH_SHOWNULL) : &nullstr; *d =3D 's'; - print_val(stringval); + print_val(unmetafy(stringval, &curlen)); break; case 'd': case 'i': diff --git a/Test/D07multibyte.ztst b/Test/D07multibyte.ztst index 1b1d042..3a6e955 100644 --- a/Test/D07multibyte.ztst +++ b/Test/D07multibyte.ztst @@ -579,3 +579,7 @@ 0:Sorting of metafied Polish characters >a =C4=85 b c =C4=87 d e =C4=99 f >a =C4=85 b c =C4=87 d e =C4=99 f + + printf '%q%q\n' =E4=BD=A0=E4=BD=A0 +0:printf %q and quotestring and general metafy / token madness +>=E4=BD=A0=E4=BD=A0