summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Lo <kevlo@FreeBSD.org>2012-02-14 10:17:03 +0000
committerKevin Lo <kevlo@FreeBSD.org>2012-02-14 10:17:03 +0000
commitc5b8baea8f557f9c63e26693bd8b23a5251edd4d (patch)
tree94d1d219a421912542ea4a7e6bbeb1b5a31d906b
parentaf07fd95ed13319f60efea3bc5c3cae1f58a18b8 (diff)
downloadpw-darwin-c5b8baea8f557f9c63e26693bd8b23a5251edd4d.tar.gz
pw-darwin-c5b8baea8f557f9c63e26693bd8b23a5251edd4d.tar.zst
pw-darwin-c5b8baea8f557f9c63e26693bd8b23a5251edd4d.zip
readlink len-1
-rw-r--r--pw/cpdir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/pw/cpdir.c b/pw/cpdir.c
index c5534e5..0fd671b 100644
--- a/pw/cpdir.c
+++ b/pw/cpdir.c
@@ -84,7 +84,7 @@ copymkdir(char const * dir, char const * skel, mode_t mode, uid_t uid, gid_t gid
if (strcmp(e->d_name, ".") != 0 && strcmp(e->d_name, "..") != 0)
copymkdir(dst, src, st.st_mode & _DEF_DIRMODE, uid, gid);
chflags(dst, st.st_flags); /* propagate flags */
- } else if (S_ISLNK(st.st_mode) && (len = readlink(src, lnk, sizeof(lnk))) != -1) {
+ } else if (S_ISLNK(st.st_mode) && (len = readlink(src, lnk, sizeof(lnk) - 1)) != -1) {
lnk[len] = '\0';
symlink(lnk, dst);
lchown(dst, uid, gid);