diff --git a/ChangeLog b/ChangeLog index c91865c7bd24f7283091f122b07c9c63f7d8a120..e98a274c7a095d28328a3ea845d8655a89f9a192 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,9 @@ CVS code - - We now run check on result of lstat(), not stat(), to be safer. New variable anyexists, we use still use realexists later in the program. + - OOPS, line up link/unlink/rename check if conditional with + top if conditional. Option -l has been broken for 9 versions, + no one noticed?! - winio.c: edit_add() - Off by one display error (fix by Rocco Corsi). diff --git a/files.c b/files.c index c0299e4060544ce6db580767bb7d05c09bca3516..c825844941f661893d57466bb72e1152c1367dd1 100644 --- a/files.c +++ b/files.c @@ -431,7 +431,7 @@ int write_file(char *name, int tmp) return -1; } - if (!ISSET(FOLLOW_SYMLINKS) || tmp) { + if ((!ISSET(FOLLOW_SYMLINKS) && S_ISLNK(st.st_mode)) || tmp) { if (realexists == -1) { /* Use default umask as file permisions if file is a new file. */ mask = umask(0);