On 25 August 2008 at 04:11, Nico Golde wrote:
| Hi Dirk,
| * Dirk Eddelbuettel <[EMAIL PROTECTED]> [2008-08-25 03:07]:
| > I think it is a false positive:
| >
| > # test functionality of the compiler
| > javac_works='not present'
| > if test -n "$JAVAC"; then
| > javac_works='not functional'
| > rm -rf /tmp/A.java /tmp/A.class ## <- note the rm -rf
| > echo "public class A { }" > /tmp/A.java
| > if test -e /tmp/A.java; then
| > if "${JAVAC}" /tmp/A.java >/dev/null; then
| > if test -e /tmp/A.class; then
| > javac_works=yes
| > fi
| > fi
| > fi
| > rm -rf /tmp/A.java /tmp/A.class
| > fi
| >
| > Right before /tmp/A.* are being used, they are being wiped. No symlink
| > attack.
| >
| > Unless I hear objections, I plan to close this one.
|
| Please don't. There is still a race condition here. The
| chance is not that high but it's still possible in theory to
| create the symlink after the unlink. Using mktemp shouldn't
| be a big effort but solve this problem.
Right. Stephen said so too. Trouble is that we then accumulate yet another
Debian-only patch... Oh well.
So something like
# test functionality of the compiler
javac_works='not present'
if test -n "$JAVAC"; then
javac_works='not functional'
#rm -rf /tmp/A.java /tmp/A.class
tempdir=`mktemp -d`
echo "public class A { }" > ${tempdir}/A.java
if test -e ${tempdir}/A.java; then
if "${JAVAC}" ${tempdir}/A.java >/dev/null; then
if test -e ${tempdir}/A.class; then
javac_works=yes
fi
fi
fi
#rm -rf /tmp/A.java /tmp/A.class
rm -rf ${tempdir}
fi
should do, right?
Dirk
--
Three out of two people have difficulties with fractions.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]