From 46409d50e5632b28b88cfa4991fffef9adaa490d Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 15 Jun 2016 15:47:01 -0500 Subject: Add readlink0() and readlinkat0() which null terminate the data. --- toys/posix/cp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'toys/posix/cp.c') diff --git a/toys/posix/cp.c b/toys/posix/cp.c index 77e7f132..eafabcd1 100644 --- a/toys/posix/cp.c +++ b/toys/posix/cp.c @@ -251,8 +251,7 @@ int cp_node(struct dirtree *try) // make symlink, or make block/char/fifo/socket if (S_ISLNK(try->st.st_mode) - ? (0 < (i = readlinkat(tfd, try->name, toybuf, sizeof(toybuf))) && - sizeof(toybuf) > i && !(toybuf[i] = '\0') && + ? ((i = readlinkat0(tfd, try->name, toybuf, sizeof(toybuf))) && !symlinkat(toybuf, cfd, catch)) : !mknodat(cfd, catch, try->st.st_mode, try->st.st_rdev)) { -- cgit v1.2.3