summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-08-06 19:51:09 +0200
committerChristian Brabandt <cb@256bit.org>2024-08-06 19:51:09 +0200
commitda090f95df6c015e4f7fc9e1036795a370503a83 (patch)
treec647e8a5c98b27d6b1386796f4e98306b0c1cd6b
parentd7af21e746f3992c650caf6b76465880b96302b4 (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.c4
-rw-r--r--src/version.c2
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,