This is a bugfix and improvement for commit b15b7cc (``Use
realpath to find the mailspool'').
We can even do this check much simpler, if we focus on the
problem that
$lspath -dlL $mailspool
does not check the target of a symlink, although -L is given.
The contradicting -d seems to overrule it.
We can fix this more easily by appending a slash to the path:
$ ls -ld /var/mail/
drwxrwxr-t 2 root root 4096 Apr 29 06:36 /var/mail//
Without the slash it was:
$ ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Nov 22 2011 /var/mail -> spool/mail/
This small change does it for one level of indirection.
This should be sufficient.
AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
AC_PROG_LEX dnl Check for lex/flex
AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
AC_PROG_LEX dnl Check for lex/flex
-dnl Look for `realpath'
-pathtmp=/bin:/usr/bin:/usr/local/bin
-AC_PATH_PROG(realpathpath, realpath, no, [$pathtmp])
-
dnl Look for `cut'
pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
dnl Look for `cut'
pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
/usr/spool/mail dnl
/dev/null; dnl Just in case we fall through
do
/usr/spool/mail dnl
/dev/null; dnl Just in case we fall through
do
- mailspool = $realpathpath $mailspool;
test -d $mailspool && break
done
nmh_cv_mailspool=$mailspool
test -d $mailspool && break
done
nmh_cv_mailspool=$mailspool
if test "$lspath" != "no" -a "$cutpath" != "no"; then
AC_CACHE_CHECK(whether the mail spool is world-writable,
nmh_cv_mailspool_world_writable,
if test "$lspath" != "no" -a "$cutpath" != "no"; then
AC_CACHE_CHECK(whether the mail spool is world-writable,
nmh_cv_mailspool_world_writable,
- [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
+ [if test "`$lspath -dl $mailspool/ | $cutpath -c9`" = "-"; then
nmh_cv_mailspool_world_writable=no
else
nmh_cv_mailspool_world_writable=yes
nmh_cv_mailspool_world_writable=no
else
nmh_cv_mailspool_world_writable=yes