+2010-05-23 Chris Allegretta <chrisa@asty.org>
+ * files.c (write_file): Don't even try to chown() the backup
+ file unless we're root, since it's probably going to fail if
+ we're editing a file we don't own. Fixes Savannah bug
+ 29514: [nano 2.2.2] backup should ignore chown errors.
+
GNU nano 2.2.4 - 2010.04.15
2010-04-07 Chris Allegretta <chrisa@asty.org>
* doc/man/nano.1,nanorc.5: Remove the backup file warnings now
goto cleanup_and_exit;
}
- if (fchmod(backup_fd, openfile->current_stat->st_mode) == -1 ||
- fchown(backup_fd, openfile->current_stat->st_uid,
- openfile->current_stat->st_gid) == -1 ) {
+ /* We shouldn't worry about chown()ing something if we're not
+ root, since it's likely to fail! */
+ if (geteuid() == NANO_ROOT_UID && fchown(backup_fd,
+ openfile->current_stat->st_uid, openfile->current_stat->st_gid) == -1 ) {
+ statusbar(_("Error writing backup file %s: %s"), backupname,
+ strerror(errno));
+ free(backupname);
+ fclose(backup_file);
+ goto cleanup_and_exit;
+ }
+
+ if (fchmod(backup_fd, openfile->current_stat->st_mode) == -1) {
statusbar(_("Error writing backup file %s: %s"), backupname,
strerror(errno));
free(backupname);