X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fmount_image.c;h=a05a822d10d78d0f2dc92b94076acdba5d7a36b4;hp=d2ce94b215e36e1ab774a34cf90b12d07d71eb64;hb=1a2837de2180cc871239a0627903a142a754e189;hpb=a911e31d082f3f6a2ca6e8e56df9bf5c2638cbb7 diff --git a/src/mount_image.c b/src/mount_image.c index d2ce94b2..a05a822d 100644 --- a/src/mount_image.c +++ b/src/mount_image.c @@ -802,7 +802,7 @@ static int rebuild_wim(struct wimfs_context *ctx, int write_flags, } DEBUG("Calculating SHA1 checksums for all new staging files."); - list_for_each_entry(lte, &ctx->staging_list, staging_list) { + list_for_each_entry_safe(lte, tmp, &ctx->staging_list, staging_list) { ret = update_lte_of_staging_file(lte, w->lookup_table); if (ret != 0) return ret; @@ -2499,6 +2499,12 @@ WIMLIBAPI int wimlib_mount_image(WIMStruct *wim, int image, const char *dir, if (ret) ret = WIMLIB_ERR_FUSE; + + /* Try to delete the staging directory if a deletion wasn't yet + * attempted due to an earlier error */ + if (ctx.staging_dir_name) + delete_staging_dir(&ctx); + out_free_dir_copy: FREE(dir_copy); out_unlock: