summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Jakub Dawidek <pjd@FreeBSD.org>2004-06-27 10:10:16 +0000
committerPawel Jakub Dawidek <pjd@FreeBSD.org>2004-06-27 10:10:16 +0000
commit232a681888e19a50dbf90d9909793d0e5e2f27bb (patch)
treeed1dc7f6e1c73441314ba8cee2b799da47be1836
parent03d74100cf60c2a9ddd8029c3fb12942fde43001 (diff)
Notes
-rw-r--r--usr.sbin/jail/jail.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/usr.sbin/jail/jail.c b/usr.sbin/jail/jail.c
index 1e5ff9b12b34..ab188eee06b0 100644
--- a/usr.sbin/jail/jail.c
+++ b/usr.sbin/jail/jail.c
@@ -52,7 +52,7 @@ main(int argc, char **argv)
struct passwd *pwd;
struct in_addr in;
int ch, groups[NGROUPS], i, iflag, ngroups, uflag, Uflag;
- char *username;
+ char path[PATH_MAX], *username;
iflag = uflag = Uflag = 0;
username = NULL;
@@ -82,11 +82,13 @@ main(int argc, char **argv)
usage();
if (uflag)
GET_USER_INFO;
- if (chdir(argv[0]) != 0)
- err(1, "chdir: %s", argv[0]);
+ if (realpath(argv[0], path) == NULL)
+ err(1, "realpath: %s", argv[0]);
+ if (chdir(path) != 0)
+ err(1, "chdir: %s", path);
memset(&j, 0, sizeof(j));
j.version = 0;
- j.path = argv[0];
+ j.path = path;
j.hostname = argv[1];
if (inet_aton(argv[2], &in) == 0)
errx(1, "Could not make sense of ip-number: %s", argv[2]);