When closing a truncated file, and removing the file fails, this
is not an error.
diff --git a/lib/zip_close.c b/lib/zip_close.c
index 2657226..6980a57 100644
--- a/lib/zip_close.c
+++ b/lib/zip_close.c
@@ -73,8 +73,10 @@
if (survivors == 0) {
if ((za->open_flags & ZIP_TRUNCATE) || changed) {
if (zip_source_remove(za->src) < 0) {
- _zip_error_set_from_source(&za->error, za->src);
- return -1;
+ if (!((zip_error_code_zip(zip_source_error(za->src)) == ZIP_ER_REMOVE) && (zip_error_code_system(zip_source_error(za->src)) == ENOENT))) {
+ _zip_error_set_from_source(&za->error, za->src);
+ return -1;
+ }
}
}
zip_discard(za);