summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_install
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>2000-02-19 08:52:52 +0000
committerjkh <jkh@FreeBSD.org>2000-02-19 08:52:52 +0000
commitc8f3efebcbd02d389b02f9fc58d46e955c0169e0 (patch)
treeec9cea43d4890b59c9dd65649bb7613712d6e2c3 /usr.sbin/pkg_install
parent1f332c837883454dc6c30d064d4720d6d412331a (diff)
downloadFreeBSD-src-c8f3efebcbd02d389b02f9fc58d46e955c0169e0.zip
FreeBSD-src-c8f3efebcbd02d389b02f9fc58d46e955c0169e0.tar.gz
1. If checking for directory-ness, check "dir" and "dir/" to catch
the case where we have a symlink pointing at a dir. 2. Restore stomped character before returning in make_hierarchy()
Diffstat (limited to 'usr.sbin/pkg_install')
-rw-r--r--usr.sbin/pkg_install/add/futil.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/usr.sbin/pkg_install/add/futil.c b/usr.sbin/pkg_install/add/futil.c
index e68d817..075095f 100644
--- a/usr.sbin/pkg_install/add/futil.c
+++ b/usr.sbin/pkg_install/add/futil.c
@@ -45,12 +45,18 @@ make_hierarchy(char *dir)
if ((cp2 = index(cp1, '/')) !=NULL )
*cp2 = '\0';
if (fexists(dir)) {
- if (!isdir(dir))
+ if (!isdir(dir)) {
+ if (cp2)
+ *cp2 = '/';
return FAIL;
+ }
}
else {
- if (vsystem("mkdir %s", dir))
+ if (vsystem("mkdir %s", dir)) {
+ if (cp2)
+ *cp2 = '/';
return FAIL;
+ }
apply_perms(NULL, dir);
}
/* Put it back */
OpenPOWER on IntegriCloud