Bug fix: -report_system_areas as_mkisofs misrepresented GPT with appended partition and forced boot flag

This commit is contained in:
Thomas Schmitt 2020-10-24 14:19:57 +02:00
parent c4d66ecb19
commit 396d09946e
2 changed files with 7 additions and 4 deletions

View File

@ -1680,7 +1680,7 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
char *volid, *crt, *mdt, *ext, *eft, uuid[17], *uuid_time; char *volid, *crt, *mdt, *ext, *eft, uuid[17], *uuid_time;
char **app_pseudo_paths= NULL; char **app_pseudo_paths= NULL;
struct tm tm_erg; struct tm tm_erg;
int was_force_bootable= 0; int was_force_bootable= 0, have_mbr_force_bootable= 0;
uint64_t gpt_bheader_block= 0; uint64_t gpt_bheader_block= 0;
struct mbr_par { struct mbr_par {
@ -1755,6 +1755,8 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
} else if(strcmp(name, "MBR partition :") == 0) { } else if(strcmp(name, "MBR partition :") == 0) {
if(num[0] > mbr_count) if(num[0] > mbr_count)
mbr_count= num[0]; mbr_count= num[0];
if(strcmp(textpt, "0x80 0x00 0 1") == 0)
have_mbr_force_bootable= 1;
} else if(strcmp(name, "GPT partition name :") == 0) { } else if(strcmp(name, "GPT partition name :") == 0) {
if(num[0] > gpt_count) if(num[0] > gpt_count)
@ -2244,8 +2246,9 @@ static int Xorriso_scan_report_lines(struct XorrisO *xorriso,
} }
/* Check for isohybri-ish MBR and GPT mix */ /* Check for isohybri-ish MBR and GPT mix */
if(mbr_count == 1 && mbrpts[0].ptype == 0xee && have_protective_msdos) { if((mbr_count == 1 || (mbr_count == 2 && have_mbr_force_bootable)) &&
/* real GPT is not -part_like_isohybrid */ mbrpts[0].ptype == 0xee && have_protective_msdos) {
/* real GPT (+/- mbr_force_bootable) is not -part_like_isohybrid */
ret= 0; ret= 0;
} else { } else {
ret= Xorriso_search_eltorito_lba(xorriso, et_imgs, elto_count, ret= Xorriso_search_eltorito_lba(xorriso, et_imgs, elto_count,

View File

@ -1 +1 @@
#define Xorriso_timestamP "2020.10.22.114038" #define Xorriso_timestamP "2020.10.24.121839"