Hi Eric,

* Eric Blake wrote on Mon, Aug 30, 2010 at 06:32:37PM CEST:
> --- c/tests/torture.at
> +++ w/tests/torture.at

> +AT_CHECK_MACRO([AC_CONFIG_COMMANDS with temporary directory],
> +[[AC_CONFIG_COMMANDS([foo], [
> +case $ACTION in
> +  use)
> +    echo "$tmp" > tmpdir
> +    test -d "$tmp" || AC_MSG_ERROR([No $tmp directory])
> +    echo garbage-in > "$tmp/garbage-out"
> +    ;;
> +  corrupt)
> +    echo "$tmp" > tmpdir
> +    tmp=/nosuch

This isn't without danger, as two undesirable things can happen when
some code in config.status does try to write to $tmp after this: first,
the user compiling as root might be annoyed at extra junk in /, second,
some user with a security-enhanced distribution (forgot which, sorry)
may report that Autoconf tried to violate its allowed name space.

I don't recall which of the autotools I saw such a report for.

Cheers,
Ralf

> +    ;;
> +  *) ;;
> +esac
> +])
> +]], [
> +AT_CHECK([test ! -f tmpdir])
> +AT_CHECK([ACTION=use ./config.status], [], [ignore])
> +AT_CHECK([test -s tmpdir && test ! -d "`cat tmpdir`"])
> +AT_CHECK([ACTION=corrupt ./config.status], [], [ignore])
> +AT_CHECK([test -s tmpdir && test ! -d "`cat tmpdir`"])


Reply via email to