diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-08-06 19:51:09 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-08-06 19:51:09 +0200 |
commit | da090f95df6c015e4f7fc9e1036795a370503a83 (patch) | |
tree | c647e8a5c98b27d6b1386796f4e98306b0c1cd6b | |
parent | d7af21e746f3992c650caf6b76465880b96302b4 (diff) |
patch 9.1.0662: filecopy() may return wrong value when readlink() failsv9.1.0662
Problem: filecopy() may return wrong value when readlink() fails.
Solution: Set ret to -1 so that 0 is returned when readlink() fails.
(zeertzjq)
closes: #15438
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r-- | src/fileio.c | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/fileio.c b/src/fileio.c index 7bae626a97..d27a1727ed 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -3912,7 +3912,7 @@ vim_rename(char_u *from, char_u *to) /* * Create the new file with same permissions as the original. - * Return -1 for failure, 0 for success. + * Return FAIL for failure, OK for success. */ int vim_copyfile(char_u *from, char_u *to) @@ -3936,7 +3936,7 @@ vim_copyfile(char_u *from, char_u *to) ret = mch_lstat((char *)from, &st); if (ret >= 0 && S_ISLNK(st.st_mode)) { - ret = FAIL; + ret = -1; len = readlink((char *)from, linkbuf, MAXPATHL); if (len > 0) diff --git a/src/version.c b/src/version.c index 460afa967e..3a6faeb539 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 662, +/**/ 661, /**/ 660, |