From: Junio C Hamano Date: Wed, 28 Mar 2012 18:31:10 GMT Subject: Re: [PATCH 2/2] git: continue alias lookup on EACCES errors Message-ID: <7v1uocwpap.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120328180404.GA9052@burratino> Jonathan Nieder writes: > Jeff King wrote: >> On Wed, Mar 28, 2012 at 10:42:26AM -0700, Junio C Hamano wrote: > >>> I am leaning to think that it would be the least surprising if we treat as >>> if /bin/ls does not even exist if /bin is not searchable. If /bin/ls is >>> unreadable or unexecutable but /bin is searchable, then we _know_ it >>> exists, and we follow the usual exec*p() rule to ignore it > [...] >> That sounds sensible to me. I think it involves writing our own >> execvp, though, right? > > If I understood Junio correctly, then checking for ENOENT and EACCES > should be enough. > > Example: when I try > > :; mkdir $HOME/cannotread > :; chmod -x $HOME/cannotread > :; echo nonsense >$HOME/bin/cat > :; chmod -x $HOME/bin/cat > :; PATH=$HOME/cannotread:$HOME/bin/cat:/usr/local/bin:/usr/bin:/bin > :; cat /etc/fstab > > the shell uses /bin/cat without complaint. Yeah, but I think that the case Peff is worried about is: $ >~/bin/nosuch $ nosuch nosuch: Permission denied