]> wimlib.net Git - wimlib/blobdiff - src/resource.c
Fixes for Windows ADS interface
[wimlib] / src / resource.c
index 2dde8d55578435c39b64151746a6c1e1dbe88abd..b1bc947d9f61fdfbd9b17686773a25d3c4dc8028 100644 (file)
@@ -1185,11 +1185,9 @@ int write_metadata_resource(WIMStruct *w)
 
        root = wim_root_dentry(w);
 
-       struct wim_security_data *sd = wim_security_data(w);
-       if (sd)
-               subdir_offset = sd->total_length + root->length + 8;
-       else
-               subdir_offset = 8 + root->length + 8;
+       const struct wim_security_data *sd = wim_security_data(w);
+       wimlib_assert(sd);
+       subdir_offset = sd->total_length + root->length + 8;
        calculate_subdir_offsets(root, &subdir_offset);
        metadata_original_size = subdir_offset + random_tail_len;
        buf = MALLOC(metadata_original_size);
@@ -1216,7 +1214,7 @@ int write_metadata_resource(WIMStruct *w)
        lookup_table_unlink(w->lookup_table, lte);
        lookup_table_insert(w->lookup_table, lte);
        wimlib_assert(lte->out_refcnt == 0);
-       lte->out_refcnt++;
+       lte->out_refcnt = 1;
        lte->output_resource_entry.flags |= WIM_RESHDR_FLAG_METADATA;
 out:
        FREE(buf);