X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fmodify.c;h=dbf2a503c2726047b553bd8118e14734028b6641;hb=604aaba2df983e5490ac76f58a8803dc352b85f3;hp=e438db9e0092fd6edb5b0ca356ac0e33b88974e1;hpb=885632f08c75c1d7bb5d25436231c78f6ad7e0c0;p=wimlib diff --git a/src/modify.c b/src/modify.c index e438db9e..dbf2a503 100644 --- a/src/modify.c +++ b/src/modify.c @@ -26,6 +26,7 @@ #include "wimlib_internal.h" #include "util.h" +#include "sha1.h" #include "dentry.h" #include "xml.h" #include "lookup_table.h" @@ -239,10 +240,6 @@ static int add_new_dentry_tree(WIMStruct *w, struct dentry *root_dentry) w->hdr.image_count++; new_imd = &imd[w->hdr.image_count - 1]; - -#if 0 - init_security_data(&new_imd->security_data); -#endif new_imd->lookup_table_entry = imd_lookup_entry; new_imd->modified = true; new_imd->root_dentry = root_dentry; @@ -343,6 +340,13 @@ WIMLIBAPI int wimlib_export_image(WIMStruct *src_wim, wims.dest_wim = dest_wim; for_dentry_in_tree(root, add_lookup_table_entry_to_dest_wim, &wims); ret = add_new_dentry_tree(dest_wim, root); +#ifdef ENABLE_SECURITY_DATA + struct wim_security_data *sd = wim_security_data(src_wim); + struct image_metadata *new_imd = wim_get_current_image_metadata(dest_wim); + new_imd->security_data = sd; + if (sd) + sd->refcnt++; +#endif if (ret != 0) return ret; @@ -390,8 +394,8 @@ WIMLIBAPI int wimlib_delete_image(WIMStruct *w, int image) * refcnt decremented to 0, and the security data. */ imd = wim_get_current_image_metadata(w); free_dentry_tree(imd->root_dentry, w->lookup_table, true); -#if 0 - destroy_security_data(&imd->security_data); +#ifdef ENABLE_SECURITY_DATA + free_security_data(imd->security_data); #endif /* Get rid of the lookup table entry for this image's metadata resource