To:
[email protected]
Subject: Patch 7.2a.003
Fcc: outbox
From: Bram Moolenaar <
[email protected]>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.2a.003
Problem: Leaking memory when using ":file name" and using access control
lists.
Solution: Invoke mch_free_acl() in vim_rename(). (Dominique Pelle)
Files: src/fileio.c
*** ../vim-7.2a.002/src/fileio.c Tue Jun 24 23:02:45 2008
--- src/fileio.c Thu Jun 26 21:53:00 2008
***************
*** 2456,2462 ****
/*
* Work around a weird problem: When a file has two links (only
* possible on NTFS) and we write through one link, then stat() it
! * throught the other link, the timestamp information may be wrong.
* It's correct again after reading the file, thus reset the timestamp
* here.
*/
--- 2456,2462 ----
/*
* Work around a weird problem: When a file has two links (only
* possible on NTFS) and we write through one link, then stat() it
! * through the other link, the timestamp information may be wrong.
* It's correct again after reading the file, thus reset the timestamp
* here.
*/
***************
*** 3906,3912 ****
#ifdef VMS
vms_remove_version(fname); /* remove version */
#endif
! /* Default: write the the file directly. May write to a temp file for
* multi-byte conversion. */
wfname = fname;
--- 3906,3912 ----
#ifdef VMS
vms_remove_version(fname); /* remove version */
#endif
! /* Default: write the file directly. May write to a temp file for
* multi-byte conversion. */
wfname = fname;
***************
*** 5770,5776 ****
#endif
/*
! * add extention to file name - change path/fo.o.h to path/fo.o.h.ext or
* fo_o_h.ext for MSDOS or when shortname option set.
*
* Assumed that fname is a valid name found in the filesystem we assure that
--- 5770,5776 ----
#endif
/*
! * add extension to file name - change path/fo.o.h to path/fo.o.h.ext or
* fo_o_h.ext for MSDOS or when shortname option set.
*
* Assumed that fname is a valid name found in the filesystem we assure that
***************
*** 5952,5958 ****
#endif
/*
! * Append the extention.
* ext can start with '.' and cannot exceed 3 more characters.
*/
STRCPY(s, ext);
--- 5952,5958 ----
#endif
/*
! * Append the extension.
* ext can start with '.' and cannot exceed 3 more characters.
*/
STRCPY(s, ext);
***************
*** 6164,6170 ****
--- 6164,6175 ----
#endif
fd_in = mch_open((char *)from, O_RDONLY|O_EXTRA, 0);
if (fd_in == -1)
+ {
+ #ifdef HAVE_ACL
+ mch_free_acl(acl);
+ #endif
return -1;
+ }
/* Create the new file with same permissions as the original. */
fd_out = mch_open((char *)to,
***************
*** 6172,6185 ****
if (fd_out == -1)
{
close(fd_in);
return -1;
}
buffer = (char *)alloc(BUFSIZE);
if (buffer == NULL)
{
- close(fd_in);
close(fd_out);
return -1;
}
--- 6177,6196 ----
if (fd_out == -1)
{
close(fd_in);
+ #ifdef HAVE_ACL
+ mch_free_acl(acl);
+ #endif
return -1;
}
buffer = (char *)alloc(BUFSIZE);
if (buffer == NULL)
{
close(fd_out);
+ close(fd_in);
+ #ifdef HAVE_ACL
+ mch_free_acl(acl);
+ #endif
return -1;
}
***************
*** 6204,6209 ****
--- 6215,6221 ----
#endif
#ifdef HAVE_ACL
mch_set_acl(to, acl);
+ mch_free_acl(acl);
#endif
if (errmsg != NULL)
{
*** ../vim-7.2a.002/src/version.c Fri Jun 27 20:25:15 2008
--- src/version.c Fri Jun 27 20:39:54 2008
***************
*** 678,679 ****
--- 678,681 ----
{ /* Add new patch number below this line */
+ /**/
+ 3,
/**/
--
hundred-and-one symptoms of being an internet addict:
97. Your mother tells you to remember something, and you look for
a File/Save command.
/// Bram Moolenaar --
[email protected] --
http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features --
http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute --
http://www.A-A-P.org ///
\\\ help me help AIDS victims --
http://ICCF-Holland.org ///