We use confstr to grab the default PATH value. If it's not there, just
use a standard one with bin and sbin for /, /usr and /usr/local.
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
AC_CHECK_HEADERS([sys/signalfd.h pty.h ifaddrs.h sys/capability.h sys/personality.h utmpx.h sys/timerfd.h])
# Check for some syscalls functions
-AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r])
+AC_CHECK_FUNCS([setns pivot_root sethostname unshare rand_r confstr])
# Check for some functions
AC_CHECK_LIB(util, openpty)
{
if (policy == LXC_ATTACH_CLEAR_ENV) {
char **extra_keep_store = NULL;
- char *path_env;
- size_t n;
int path_kept = 0;
if (extra_keep) {
* that getenv("PATH") is never NULL and then die a
* painful segfault death. */
if (!path_kept) {
+#ifdef HAVE_CONFSTR
+ size_t n;
+ char *path_env;
+
n = confstr(_CS_PATH, NULL, 0);
path_env = malloc(n);
if (path_env) {
free(path_env);
}
/* don't error out, this is just an extra service */
+#else
+ setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 1);
+#endif
}
}