Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Dec 1999 15:40:20 +0100
From:      Martin Cracauer <cracauer@cons.org>
To:        Marcel Moolenaar <marcel@scc.nl>
Cc:        Sheldon Hearn <sheldonh@uunet.co.za>, current@FreeBSD.ORG
Subject:   Re: sh(1) broken caching [was: Re: Broken sh(1)?]
Message-ID:  <19991216154020.A41154@cons.org>
In-Reply-To: <38565DEA.4487DF53@scc.nl>; from Marcel Moolenaar on Tue, Dec 14, 1999 at 04:10:34PM %2B0100
References:  <712.945183175@axl.noc.iafrica.com> <38565DEA.4487DF53@scc.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
You can also fool sh into running the *wrong* binary if if you have
two in showdowed paths:

#! /bin/sh

test -d foo1 || mkdir foo1
test -d foo2 || mkdir foo2
test -d foo2 || mkdir foo3
echo 'echo :one' > foo1/run
echo 'echo :two' > foo2/run
echo 'echo :three' > foo2/run3
chmod a+x */run*

hash -r
echo
echo Expect one:
PATH=./foo3:./foo1:./foo2:./foo5

echo Expect two:
PATH=./foo3:./foo3:./foo1 run
echo run should be in in foo1:
hash -v
echo $PATH
echo Should give one:
run

==> runs foo2/run, not foo1/run.

This is still covered by the quick fix I sent. Looking for cases that
aren't... 

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@cons.org> http://www.cons.org/cracauer/
BSD User Group Hamburg, Germany     http://www.bsdhh.org/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19991216154020.A41154>