Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix setting rootdir with relative path and explain why it may fail
Baptiste Daroussin committed 9 years ago
commit aee25a182ea77e32f3ed6655a3f1d51bd3f98ced
parent 8931810
1 file changed +4 -1
modified src/main.c
@@ -608,6 +608,7 @@ main(int argc, char **argv)
	const char	 *conffile = NULL;
	const char	 *reposdir = NULL;
	char		**save_argv;
+
	char		  realrootdir[MAXPATHLEN];
	int		  j;

	struct option longopts[] = {
@@ -756,9 +757,11 @@ main(int argc, char **argv)
#endif

	if (rootdir != NULL) {
+
		if (realpath(rootdir, realrootdir) == NULL)
+
			err(EX_SOFTWARE, "Invalid rootdir");
		if (chdir(rootdir) == -1)
			errx(EX_SOFTWARE, "chdir() failed");
-
		if (pkg_set_rootdir(rootdir) != EPKG_OK)
+
		if (pkg_set_rootdir(realrootdir) != EPKG_OK)
			exit(EX_SOFTWARE);
	}