X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fadd_image.c;h=1d826fb8c9a70a4b663c5c9f47237a6bd9708162;hb=ccdd5a74123ebf14353a9569bf014fb2e7774d1e;hp=a06ee939cbb9b68c44ad4d3d40ed08231022220c;hpb=f24f8409b041727329e980fdc81e84a7c9b00e5b;p=wimlib diff --git a/src/add_image.c b/src/add_image.c index a06ee939..1d826fb8 100644 --- a/src/add_image.c +++ b/src/add_image.c @@ -139,7 +139,8 @@ 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 | + WIMLIB_ADD_FLAG_WIMBOOT); 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 +165,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) @@ -187,6 +192,8 @@ wimlib_add_image_multisource(WIMStruct *wim, /* Success; set boot index if requested. */ if (add_flags & WIMLIB_ADD_FLAG_BOOT) wim->hdr.boot_idx = wim->hdr.image_count; + if (add_flags & WIMLIB_ADD_FLAG_WIMBOOT) + wim_info_set_wimboot(wim->wim_info, wim->hdr.image_count, true); ret = 0; goto out; out_delete_image: