X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fadd_image.c;h=9b8cffb90f43b49b1708a8f9b02682814bf7add4;hb=f5721c4a16f24ddc7fe647615a1146a9b93801d5;hp=746c06a92dd43ed6d1cf0c427b5e1080988699ec;hpb=61db93f82eca3fe9f7676355c709c58cc425a6ad;p=wimlib diff --git a/src/add_image.c b/src/add_image.c index 746c06a9..9b8cffb9 100644 --- a/src/add_image.c +++ b/src/add_image.c @@ -45,14 +45,14 @@ add_new_dentry_tree(WIMStruct *wim, struct wim_dentry *root_dentry, int ret; metadata_lte = new_lookup_table_entry(); - if (!metadata_lte) + if (metadata_lte == NULL) return WIMLIB_ERR_NOMEM; - metadata_lte->resource_entry.flags = WIM_RESHDR_FLAG_METADATA; + metadata_lte->flags = WIM_RESHDR_FLAG_METADATA; metadata_lte->unhashed = 1; new_imd = new_image_metadata(); - if (!new_imd) { + if (new_imd == NULL) { free_lookup_table_entry(metadata_lte); return WIMLIB_ERR_NOMEM; } @@ -92,7 +92,7 @@ wimlib_add_empty_image(WIMStruct *wim, const tchar *name, int *new_idx_ret) } sd = new_wim_security_data(); - if (!sd) { + if (sd == NULL) { ret = WIMLIB_ERR_NOMEM; goto out; } @@ -139,7 +139,7 @@ capture_sources_to_add_cmds(const struct wimlib_capture_source *sources, sources[i].fs_source_path, sources[i].wim_target_path); add_cmds[i].op = WIMLIB_UPDATE_OP_ADD; - add_cmds[i].add.add_flags = add_flags; + add_cmds[i].add.add_flags = add_flags & ~WIMLIB_ADD_FLAG_BOOT; add_cmds[i].add.config = (struct wimlib_capture_config*)config; add_cmds[i].add.fs_source_path = sources[i].fs_source_path; add_cmds[i].add.wim_target_path = sources[i].wim_target_path; @@ -164,6 +164,10 @@ wimlib_add_image_multisource(WIMStruct *wim, DEBUG("Adding image \"%"TS"\" from %zu sources (add_flags=%#x)", name, num_sources, add_flags); + for (size_t i = 0; i < num_sources; i++) + if (sources[i].reserved != 0) + return WIMLIB_ERR_INVALID_PARAM; + /* Add the new image (initially empty) */ ret = wimlib_add_empty_image(wim, name, NULL); if (ret) @@ -172,7 +176,7 @@ wimlib_add_image_multisource(WIMStruct *wim, /* Translate the "capture sources" into generic update commands. */ add_cmds = capture_sources_to_add_cmds(sources, num_sources, add_flags, config); - if (!add_cmds) { + if (add_cmds == NULL) { ret = WIMLIB_ERR_NOMEM; goto out_delete_image; }