mirror of
https://github.com/the-tcpdump-group/tcpdump.git
synced 2024-11-23 18:14:29 +08:00
Autoconf: Get --with-user and --with-chroot right. [skip appveyor]
As Francois-Xavier points it out, my commit 3aa6574
fixed one bug, but
introduced another: running "./configure --with-gcc" also erroneously
takes the --with-user code path because withval is set to "yes" after
the --with-gcc block:
./configure --with-gcc
[...]
checking whether to drop root privileges by default... configure:
error: --with-user requires a username
The matter is, in Autoconf AC_ARG_WITH() without ation-if-not-given
assigns withval only if with_xxxx is set to any value (including an
empty string), so make sure withval is always set in AC_ARG_WITH() and
spell all possible withval values in AS_CASE(), this way regardless of
any other options the behaviour is correct.
Rejected:
--with-user
--with-user=
--with-user=yes
--with-chroot
--with-chroot=
--with-chroot=yes
Accepted:
--without-user
--with-user=no
--with-user=someuser
--without-chroot
--with-chroot=no
--with-chroot=/somedir
This commit is contained in:
parent
b200ed9285
commit
df376cdfb5
55
configure.ac
55
configure.ac
@ -179,31 +179,42 @@ yes) AC_MSG_RESULT(yes)
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_ARG_WITH(user, [ --with-user=USERNAME drop privileges by default to USERNAME])
|
||||
AC_MSG_CHECKING([whether to drop root privileges by default])
|
||||
if test ! -z "$withval" && test "$withval" != "no" ; then
|
||||
if test "$withval" = "yes" ; then
|
||||
AC_MSG_ERROR([--with-user requires a username])
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED(WITH_USER, "$withval",
|
||||
[define if should drop privileges by default])
|
||||
AC_MSG_RESULT([yes, to user "$withval"])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
AC_ARG_WITH(
|
||||
[user],
|
||||
[AS_HELP_STRING([--with-user=USERNAME],
|
||||
[drop privileges by default to USERNAME]
|
||||
)],
|
||||
[],
|
||||
[withval=no])
|
||||
AS_CASE(["$withval"],
|
||||
[no], [AC_MSG_RESULT(no)],
|
||||
[''|yes], [AC_MSG_ERROR([--with-user requires a username])],
|
||||
[
|
||||
AC_DEFINE_UNQUOTED(WITH_USER, "$withval",
|
||||
[define if should drop privileges by default])
|
||||
AC_MSG_RESULT([yes, to user "$withval"])
|
||||
]
|
||||
)
|
||||
|
||||
AC_ARG_WITH(chroot, [ --with-chroot=DIRECTORY when dropping privileges, chroot to DIRECTORY])
|
||||
AC_MSG_CHECKING([whether to chroot])
|
||||
if test ! -z "$withval" && test "$withval" != "no" ; then
|
||||
if test "$withval" = "yes" ; then
|
||||
AC_MSG_ERROR([--with-chroot requires a directory])
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED(WITH_CHROOT, "$withval",
|
||||
[define if should chroot when dropping privileges])
|
||||
AC_MSG_RESULT([yes, to directory "$withval"])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
AC_ARG_WITH(
|
||||
[chroot],
|
||||
[AS_HELP_STRING([--with-chroot=DIRECTORY],
|
||||
[when dropping privileges, chroot to DIRECTORY]
|
||||
)],
|
||||
[],
|
||||
[withval=no]
|
||||
)
|
||||
AS_CASE(["$withval"],
|
||||
[no], [AC_MSG_RESULT(no)],
|
||||
[''|yes], [AC_MSG_ERROR([--with-chroot requires a directory])],
|
||||
[
|
||||
AC_DEFINE_UNQUOTED(WITH_CHROOT, "$withval",
|
||||
[define if should chroot when dropping privileges])
|
||||
AC_MSG_RESULT([yes, to directory "$withval"])
|
||||
]
|
||||
)
|
||||
|
||||
AC_ARG_WITH(sandbox-capsicum,
|
||||
AS_HELP_STRING([--with-sandbox-capsicum],
|
||||
|
Loading…
Reference in New Issue
Block a user