diff --git a/bin/xbps-uunshare/main.c b/bin/xbps-uunshare/main.c index 9bb43fc9..e4f7b647 100644 --- a/bin/xbps-uunshare/main.c +++ b/bin/xbps-uunshare/main.c @@ -157,7 +157,7 @@ main(int argc, char **argv) if (argc < 2) usage(argv0); - chrootdir = argv[0]; + chrootdir = argv[-1]; cmd = argv[1]; cmdargs = argv + 1; @@ -165,6 +165,14 @@ main(int argc, char **argv) if (strcmp(chrootdir, "/") == 0) die("/ is not allowed to be used as chrootdir"); + /* Make chrootdir absolute */ + if (chrootdir[0] != '/') { + char cwd[PATH_MAX-1]; + if (getcwd(cwd, sizeof(cwd)) == NULL) + die("getcwd"); + chrootdir = xbps_xasprintf("%s/%s", cwd, chrootdir); + } + /* * Unshare from the current process namespaces and set ours. */