]> wimlib.net Git - wimlib/blobdiff - src/extract.c
read_utf8_file_contents(): Move check for BOM here
[wimlib] / src / extract.c
index 40838c4a74b1c4947800fd06f7ea0d0fd8564613..2e285f540aea90b815c52d5e95db786af027e1e0 100644 (file)
@@ -1147,7 +1147,8 @@ dentry_extract_skeleton(struct wim_dentry *dentry, void *_ctx)
                inode_for_each_dentry(other_dentry, dentry->d_inode) {
                        if (dentry_has_short_name(other_dentry)
                            && !other_dentry->skeleton_extracted
-                           && other_dentry->in_extraction_tree)
+                           && other_dentry->in_extraction_tree
+                           && !other_dentry->extraction_skipped)
                        {
                                DEBUG("Creating %"TS" before %"TS" "
                                      "to guarantee correct DOS name extraction",
@@ -1527,8 +1528,10 @@ extract_streams_from_pipe(struct apply_ctx *ctx)
 
                                /* Extract stream to temporary file.  */
                                ret = create_temporary_file(&tmpfile_fd, &tmpfile_name);
-                               if (ret)
+                               if (ret) {
+                                       lte_unbind_wim_resource_spec(needed_lte);
                                        goto out_free_found_lte;
+                               }
 
                                ret = extract_full_stream_to_fd(needed_lte,
                                                                &tmpfile_fd);