From: Martin Matuska Date: Mon, 2 Mar 2020 01:58:57 +0000 (+0100) Subject: Add archive_write_disk_windows.c counterpart to previous commit X-Git-Tag: v3.4.3~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=85b9f665b6a2d4397fdd38992152d011265e374b;p=thirdparty%2Flibarchive.git Add archive_write_disk_windows.c counterpart to previous commit --- diff --git a/libarchive/archive_write_disk_windows.c b/libarchive/archive_write_disk_windows.c index 1d1275df3..4b703492b 100644 --- a/libarchive/archive_write_disk_windows.c +++ b/libarchive/archive_write_disk_windows.c @@ -1174,6 +1174,7 @@ _archive_write_disk_finish_entry(struct archive *_a) { struct archive_write_disk *a = (struct archive_write_disk *)_a; int ret = ARCHIVE_OK; + int oerrno; archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, ARCHIVE_STATE_HEADER | ARCHIVE_STATE_DATA, @@ -1281,7 +1282,9 @@ _archive_write_disk_finish_entry(struct archive *_a) /* Windows does not support atomic rename */ disk_unlink(a->name); if (_wrename(a->tmpname, a->name) != 0) { + oerrno = errno; disk_unlink(a->tmpname); + errno = oerrno; archive_set_error(&a->archive, errno, "Failed to safe write"); ret = ARCHIVE_FATAL;