/*
* 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.
+ * through the other link, the timestamp information may be wrong.
* It's correct again after reading the file, thus reset the timestamp
* here.
*/
#ifdef VMS
vms_remove_version(fname); /* remove version */
#endif
- /* Default: write the the file directly. May write to a temp file for
+ /* Default: write the file directly. May write to a temp file for
* multi-byte conversion. */
wfname = fname;
#endif
/*
- * add extention to file name - change path/fo.o.h to path/fo.o.h.ext or
+ * 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
#endif
/*
- * Append the extention.
+ * Append the extension.
* ext can start with '.' and cannot exceed 3 more characters.
*/
STRCPY(s, ext);
#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,
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_in);
close(fd_out);
+ close(fd_in);
+#ifdef HAVE_ACL
+ mch_free_acl(acl);
+#endif
return -1;
}
#endif
#ifdef HAVE_ACL
mch_set_acl(to, acl);
+ mch_free_acl(acl);
#endif
if (errmsg != NULL)
{