diff --git a/xorriso/xorriso.c b/xorriso/xorriso.c index d9296c6b..72735ae6 100644 --- a/xorriso/xorriso.c +++ b/xorriso/xorriso.c @@ -11363,7 +11363,8 @@ int Xorriso_genisofs(struct XorrisO *xorriso, char *whom, } boot_opt_list= TSOB_FELD(int, argc + 1); if(boot_opt_list == NULL) { - Xorriso_no_malloc_memory(xorriso, (char **) &weight_list, 0); + cpt= (char *) weight_list; + Xorriso_no_malloc_memory(xorriso, &cpt, 0); return(-1); } diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index db1fa665..545dbf72 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2010.04.26.121051" +#define Xorriso_timestamP "2010.04.26.141229" diff --git a/xorriso/xorrisoburn.c b/xorriso/xorrisoburn.c index aa43c520..0174a995 100644 --- a/xorriso/xorrisoburn.c +++ b/xorriso/xorrisoburn.c @@ -1845,7 +1845,7 @@ int Xorriso_boot_item_status(struct XorrisO *xorriso, char *cat_path, line= xorriso->result_line; if(flag & 16) { - /* >>> BOOT: allow to concentrate boot options. */ + /* Allow to concentrate boot options. */ memset(zeros, 0, 28); if(memcmp(id_string, zeros, 28) == 0 && memcmp(selection_crit, zeros, 20) == 0) @@ -2244,7 +2244,7 @@ ex:; */ int Xorriso_write_session(struct XorrisO *xorriso, int flag) { - int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext; + int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0; int major, minor, micro; char xorriso_id[256], *img_id, sfe[5*SfileadrL], *out_cs; struct isoburn_imgen_opts *sopts= NULL; @@ -2359,14 +2359,14 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) #ifdef Xorriso_multi_booT if(image!=NULL && !(flag&1)) { + is_bootable= iso_image_get_boot_image(image, NULL, NULL, &bootcat_node); if(xorriso->boot_image_bin_path[0]) { ret= Xorriso_attach_boot_image(xorriso, xorriso->boot_count == 0); if(ret <= 0) goto ex; /* Eventually rename boot catalog node to changed boot_image_cat_path */ - ret= iso_image_get_boot_image(image, NULL, NULL, &bootcat_node); - if(ret > 0) { + if(is_bootable > 0) { ret= Xorriso_path_from_node(xorriso, (IsoNode *) bootcat_node, sfe, 0); if(ret > 0) { if(strcmp(sfe, xorriso->boot_image_cat_path) != 0) { @@ -2404,10 +2404,10 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) } /* >>> ??? move down to libisoburn ? */ if(image!=NULL && !(flag&1)) { - ret= iso_image_get_boot_image(image, &bootimg, NULL, NULL); + is_bootable= iso_image_get_boot_image(image, &bootimg, NULL, NULL); if(boot_image_bin_path[0]) { /* discard old boot image, set new one */ - if(ret == 1) + if(is_bootable == 1) iso_image_remove_boot_image(image); if(boot_image_emul == 1) emul_type= ELTORITO_HARD_DISC_EMUL; @@ -2560,7 +2560,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) #endif /* ! Xorriso_multi_booT */ } else if(xorriso->patch_isolinux_image) { - if(ret==1) { + if(is_bootable == 1) { relax|= isoburn_igopt_allow_full_ascii; sprintf(xorriso->info_text, "Patching boot info table"); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); @@ -2589,11 +2589,11 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) "Could not find any boot image for -boot_image patching"); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0); } - } else if(xorriso->keep_boot_image && ret==1) { + } else if(xorriso->keep_boot_image && is_bootable == 1) { relax|= isoburn_igopt_allow_full_ascii; sprintf(xorriso->info_text, "Keeping boot image unchanged"); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0); - } else if(ret==1) { + } else if(is_bootable == 1) { iso_image_remove_boot_image(image); sprintf(xorriso->info_text, "Discarded boot image from old session"); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);