From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18745 invoked by alias); 18 Aug 2015 09:59:27 -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: 36218 Received: (qmail 26848 invoked from network); 18 Aug 2015 09:59:24 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.0 X-AuditID: cbfec7f4-f79c56d0000012ee-fb-55d2ff9a9fb7 Date: Tue, 18 Aug 2015 10:49:11 +0100 From: Peter Stephenson To: Zsh hackers list Subject: Re: mkdir builtin and $'\0' Message-id: <20150818104911.034b6705@pwslap01u.europe.root.pri> In-reply-to: <20150818091904.GA5389@chaz.gmail.com> References: <20150818091904.GA5389@chaz.gmail.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+NgFjrMLMWRmVeSWpSXmKPExsVy+t/xK7qz/l8KNXh5hcfiYPNDJgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZVza8JSlYA5HxcR2qwbGHWxdjJwcEgImEps6vkHZYhIX7q0H srk4hASWMkqcbO1mhXBmMEn033rNAuFsY5S4f+MGM0gLi4CqxKeLa5hAbDYBQ4mpm2Yzgtgi AloSO06eBIsLC6hIvGzsAFvBK2Av8fHiORYQm1PAWGLxrhVgc4QEjCSmv90DFucX0Je4+vcT E8RJ9hIzr5xhhOgVlPgx+R5YDbOAusSkeYuYIWxtiSfvLrBCzFGXuHF3N/sERqFZSFpmIWmZ haRlASPzKkbR1NLkguKk9FxDveLE3OLSvHS95PzcTYyQoP2yg3HxMatDjAIcjEo8vBV5l0KF WBPLiitzDzFKcDArifCK/gQK8aYkVlalFuXHF5XmpBYfYpTmYFES5527632IkEB6Yklqdmpq QWoRTJaJg1OqgZHr0qZ+i7Tr1icWTDnyOVTC5rdx8wW7mVMPx7624WYzrVnaPI1Z5MVJ70sP uu6/euXWNZPjwT3TrPXci23dbXaJV+4x1V1SI1phLX7+9MFshhR2kYqcVCPJJG+bF9qdMz9z B6rVfda28xSdW5cek6ukVyOqd4e1UCO006PdrHHT+x8BJ1mElFiKMxINtZiLihMBU7xNvVYC AAA= On Tue, 18 Aug 2015 10:19:04 +0100 Stephane Chazelas wrote: > $=C2=A0zsh --version > zsh 5.0.8 (x86_64-pc-linux-gnu) > $=C2=A0strace -e mkdir zsh -c "zmodload zsh/files; mkdir $'a\0b'" > mkdir("a\203 b", 0755) =3D -1 EEXIST (File exists) > zsh:mkdir:1: cannot make directory `a^@b': file exists > +++ exited with 1 +++ >=20 > See how that $'\0' became "\203 " except in the error message. Looks like a long-standing mistake --- the unmetafied form of the variable wasn't propagated everywhere. A quick scan elsewhere suggests this is just a one-off (I haven't confirmed in detail). diff --git a/Src/Modules/files.c b/Src/Modules/files.c index f86b9c1..dbcff63 100644 --- a/Src/Modules/files.c +++ b/Src/Modules/files.c @@ -131,7 +131,7 @@ domkdir(char *nam, char *path, mode_t mode, int p) return 0; } oumask =3D umask(0); - err =3D mkdir(path, mode) ? errno : 0; + err =3D mkdir(rpath, mode) ? errno : 0; umask(oumask); if(!err) return 0;