diff options
author | jkh <jkh@FreeBSD.org> | 2000-02-19 08:52:52 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 2000-02-19 08:52:52 +0000 |
commit | c8f3efebcbd02d389b02f9fc58d46e955c0169e0 (patch) | |
tree | ec9cea43d4890b59c9dd65649bb7613712d6e2c3 /usr.sbin/pkg_install | |
parent | 1f332c837883454dc6c30d064d4720d6d412331a (diff) | |
download | FreeBSD-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.c | 10 |
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 */ |