From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21237 invoked by alias); 9 May 2017 08:30:19 -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: 41078 Received: (qmail 8935 invoked from network); 9 May 2017 08:30:19 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.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.11):SA:0(-5.0/5.0):. Processed in 0.967898 secs); 09 May 2017 08:30:19 -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=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS 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: cbfec7ef-f796a6d00000373c-b6-59117e12527f Date: Tue, 09 May 2017 09:30:06 +0100 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: Zsh parser segmentation fault in putpromptchar putpromptchar at prompt.c Message-id: <20170509093006.7c2d676c@pwslap01u.europe.root.pri> In-reply-to: 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=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRmVeSWpSXmKPExsWy7djPc7pCdYKRBnsPSlocbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujPnXGlkKrnFUXN67mLWB8TNbFyMnh4SAicTzjR2sELaYxIV7 64HiXBxCAssYJba83QyWEBLoZZI4eL8QpuHW1oMscEW3DrxmgiiaxiTxbJYLROI0o0Tb7X2s EM4ZRolnO06AjWIRUJX49PMrI4jNJmAoMXXTbDBbREBc4uza8ywgtrBAuMTntc/A7uMVsJd4 eOUYWJxTIFhi5oQF7CA2v4C+xNW/n5ggTrKXmHnlDCNEvaDEj8n3wOqZBXQktm17zA5hy0ts XvOWGeQgCYH/bBK7D60ESnAAObISmw4wQ8xxkdi1YwEjhC0s8er4FnYIW0ais+Mg1K5+Rokn 3b4Qc2YwSpw+swMakNYSfbcvMkIs45OYtG06M8R8XomONiGIEg+Jr13bWCBsR4lJN6ewTGBU nIXk7FlIzp6F5OwFjMyrGEVSS4tz01OLDfWKE3OLS/PS9ZLzczcxAtPA6X/H3+9gfNoccohR gINRiYdXI08gUog1say4MvcQowQHs5IIr1q1YKQQb0piZVVqUX58UWlOavEhRmkOFiVxXt5T 1yKEBNITS1KzU1MLUotgskwcnFINjEITKmddib+t+HFajultw+tuS9/8Odwnbtkjr1H4+bJN baVNwVSNI6V1t0R0XKqXKLp9CIkWNVSbla27540zx7GlT3+JGG5U23qwmcUypIST83bQZJuj J8JmOVZuZn6x7p/S5ctc8V9NNiToBd69HX7GWeTKHfYs61/JQiX9YkuYAg3dmQKalFiKMxIN tZiLihMBQ42rKf8CAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGIsWRmVeSWpSXmKPExsVy+t/xa7oL6gQjDRZeZ7c42PyQyYHRY9XB D0wBjFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFBSgpliTmlQJ6RARpw cA5wD1bSt0twy5h/rZGl4BpHxeW9i1kbGD+zdTFyckgImEjc2nqQBcIWk7hwbz1QnItDSGAJ o8TN5Q/ZIZwZTBKL909lBKkSEjjNKHHubyJE4gyjxJfZL5lBEiwCqhKffn4FK2ITMJSYumk2 mC0iIC5xdu15sBXCAuESn9c+A1vNK2Av8fDKMbA4p0CwxJpjpxghhi4DGvrpEhNIgl9AX+Lq 309MEPfZS8y8coYRollQ4sfke2DNzAJaEpu3NbFC2PISm9e8ZYa4VF3ixt3d7BMYhWchaZmF pGUWkpYFjMyrGEVSS4tz03OLDfWKE3OLS/PS9ZLzczcxAuNo27Gfm3cwXtoYfIhRgINRiYdX I08gUog1say4MvcQowQHs5IIr1q1YKQQb0piZVVqUX58UWlOavEhRlNgyExklhJNzgfGeF5J vKGJobmloZGxhYW5kZGSOG/JhyvhQgLpiSWp2ampBalFMH1MHJxSDYzB83RU7b4rvYsou1sW aHFaRTbzgdb6fdL5jZfmz1v+1nT9+cZwselFLpaF9lHyujWTun5OvHf1tXjmqeOxkzbxnGmz FjQ9KpM1Ycu0wyHL22duqmt1/XA3Q/HVzhUO0jKc396dvmYmdLnyZpCrxIlvF/irb2SEJP16 83TP8ynbGT4x7rGvuxmsxFKckWioxVxUnAgA1QuXMrkCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170509083007eucas1p1885570660619460be6abb82de2cd645b X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 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: 20170508184346epcas2p364369da57566738a36b888054303eee5 X-RootMTR: 20170508184346epcas2p364369da57566738a36b888054303eee5 References: On Mon, 8 May 2017 13:42:46 -0500 Eduardo Bustamante wrote: > dualbus@debian:~/bash-fuzzing/zsh-parser$ base64 segfault > JHsoJVUpWS0lKHZ9 > > dualbus@debian:~/bash-fuzzing/zsh-parser$ md5sum segfault > 0d79a8c613315f32a453d5aa07a7de65 segfault > > dualbus@debian:~/bash-fuzzing/zsh-parser$ cat -v segfault > ${(%U)Y-%(v} The test for psvar is wrong if it's empty. pws diff --git a/Src/prompt.c b/Src/prompt.c index 29e006e..c478e69 100644 --- a/Src/prompt.c +++ b/Src/prompt.c @@ -399,7 +399,7 @@ putpromptchar(int doprint, int endchar, unsigned int *txtchangep) test = 1; break; case 'V': - if (arrlen_ge(psvar, arg)) { + if (psvar && *psvar && arrlen_ge(psvar, arg)) { if (*psvar[(arg ? arg : 1) - 1]) test = 1; } diff --git a/Test/D01prompt.ztst b/Test/D01prompt.ztst index 0818728..11f18dc 100644 --- a/Test/D01prompt.ztst +++ b/Test/D01prompt.ztst @@ -209,3 +209,7 @@ print -P -f '%%Sfoo%%s\n' bar 0:print -P -f >%Sfoo%s + + print ${(%U)Y-%(v} +0:Regression test for test on empty psvar +>