mirror of
https://github.com/vim/vim.git
synced 2025-09-28 04:24:06 -04:00
patch 7.4.2035
Problem: On Solaris with ZFS the ACL may get removed. Solution: Always restore the ACL for Solaris ZFS. (Danek Duvall)
This commit is contained in:
12
src/fileio.c
12
src/fileio.c
@@ -4709,9 +4709,17 @@ restore_backup:
|
|||||||
if (perm >= 0) /* set perm. of new file same as old file */
|
if (perm >= 0) /* set perm. of new file same as old file */
|
||||||
(void)mch_setperm(wfname, perm);
|
(void)mch_setperm(wfname, perm);
|
||||||
#ifdef HAVE_ACL
|
#ifdef HAVE_ACL
|
||||||
/* Probably need to set the ACL before changing the user (can't set the
|
/*
|
||||||
* ACL on a file the user doesn't own). */
|
* Probably need to set the ACL before changing the user (can't set the
|
||||||
|
* ACL on a file the user doesn't own).
|
||||||
|
* On Solaris, with ZFS and the aclmode property set to "discard" (the
|
||||||
|
* default), chmod() discards all part of a file's ACL that don't represent
|
||||||
|
* the mode of the file. It's non-trivial for us to discover whether we're
|
||||||
|
* in that situation, so we simply always re-set the ACL.
|
||||||
|
*/
|
||||||
|
# ifndef HAVE_SOLARIS_ZFS_ACL
|
||||||
if (!backup_copy)
|
if (!backup_copy)
|
||||||
|
# endif
|
||||||
mch_set_acl(wfname, acl);
|
mch_set_acl(wfname, acl);
|
||||||
#endif
|
#endif
|
||||||
#ifdef FEAT_CRYPT
|
#ifdef FEAT_CRYPT
|
||||||
|
@@ -758,6 +758,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2035,
|
||||||
/**/
|
/**/
|
||||||
2034,
|
2034,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user