From 2f24d82e3ca1e3210a5cde24dc84686d51a2ff25 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sun, 9 Apr 2017 19:52:54 +0200 Subject: [PATCH] Avoiding to recognize real GPT as -part_like_isohybrid --- xorriso/iso_img.c | 20 ++++++++++++++------ xorriso/xorriso_timestamp.h | 2 +- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/xorriso/iso_img.c b/xorriso/iso_img.c index c8132832..7e8a5fc4 100644 --- a/xorriso/iso_img.c +++ b/xorriso/iso_img.c @@ -1912,7 +1912,7 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso, } else if(strcmp(name, "GPT start and size :") == 0) { idx= num[0] - 1; - if(img_blocks <= num[1] && num[2] > 0) + if(num[2] > 0) appended_as_gpt= 1; gpts[idx].start_block= num[1]; gpts[idx].block_count= num[2]; @@ -2059,8 +2059,8 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso, Xorriso_add_intvl_adr(xorriso, buf, (uint64_t) start_block, ((uint64_t) start_block) + num_blocks - 1, "d", imported_iso); - } else if((part_status & 0x80) && part_type == 0x00 && - start_block == 0 && num_blocks == 1) { + } else if((part_status & 0x80) && part_type == 0x00 && + start_block == 0 && num_blocks == 1) { if(mkisofs) sprintf(buf, "--mbr-force-bootable"); else @@ -2157,12 +2157,20 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso, Xorriso_add_intvl_adr(xorriso, buf, (uint64_t) num[1], (uint64_t) (num[1] + num[2] - 1.0), "d", imported_iso); + Xorriso_record_cmd_linE + buf[0]= 0; appended_partition= 1; } - ret= Xorriso_search_eltorito_lba(xorriso, et_imgs, elto_count, - (unsigned int) (num[1] / 4.0), - &et_idx, 0); + /* Check for isohybri-ish MBR and GPT mix */ + if(mbr_count == 1 && mbrpts[0].ptype == 0xee && have_protective_msdos) { + /* real GPT is not -part_like_isohybrid */ + ret= 0; + } else { + ret= Xorriso_search_eltorito_lba(xorriso, et_imgs, elto_count, + (unsigned int) (num[1] / 4.0), + &et_idx, 0); + } if(ret > 0) { if(!(et_imgs[et_idx].do_gpt_basdat || et_imgs[et_idx].do_gpt_hfsplus || diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 0297e10d..43b5cd9b 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2017.02.27.094332" +#define Xorriso_timestamP "2017.04.09.175231"