From 9b5fa1d7ed4fe4b6221a3e6dd50c4b82534bc544 Mon Sep 17 00:00:00 2001 From: Bob Lantz <rlantz@cs.stanford.edu> Date: Mon, 10 Nov 2014 16:57:12 -0800 Subject: [PATCH] Always chdir() to current working directory. --- mnexec.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mnexec.c b/mnexec.c index ed44f608..a9cb8678 100644 --- a/mnexec.c +++ b/mnexec.c @@ -99,6 +99,7 @@ int main(int argc, char *argv[]) char path[PATH_MAX]; int nsid; int pid; + char *cwd = get_current_dir_name(); static struct sched_param sp; while ((c = getopt(argc, argv, "+cdnpa:g:r:vh")) != -1) @@ -157,18 +158,17 @@ int main(int argc, char *argv[]) sprintf(path, "/proc/%d/ns/mnt", pid); nsid = open(path, O_RDONLY); if (nsid < 0 || setns(nsid, 0) != 0) { - char *cwd = get_current_dir_name(); /* Plan B: chroot/chdir into pid's root file system */ sprintf(path, "/proc/%d/root", pid); if (chroot(path) < 0) { perror(path); return 1; } - /* need to chdir to correct working directory */ - if (chdir(cwd) != 0) { - perror(cwd); - return 1; - } + } + /* chdir to correct working directory */ + if (chdir(cwd) != 0) { + perror(cwd); + return 1; } break; case 'g': -- GitLab