Bug fix: Multi-session emulation was not recognized with non-zero partition offset
This commit is contained in:
parent
e72ab34569
commit
198ecef0c4
@ -478,8 +478,8 @@ static int isoburn_inspect_partition(struct isoburn *o, uint32_t img_size,
|
|||||||
{ret= 2; goto ex;} /* No room for volume descriptors */
|
{ret= 2; goto ex;} /* No room for volume descriptors */
|
||||||
offst/= 4;
|
offst/= 4;
|
||||||
numsec/= 4;
|
numsec/= 4;
|
||||||
if(offst + numsec != img_size)
|
if(offst + numsec > img_size)
|
||||||
{ret= 2; goto ex;} /* Partition end does not match image end */
|
{ret= 2; goto ex;} /* Partition end exceeds image end */
|
||||||
|
|
||||||
/* Is there a PVD at the partition start ? */
|
/* Is there a PVD at the partition start ? */
|
||||||
ret = burn_read_data(o->drive, (off_t) (offst + 16) * (off_t) 2048,
|
ret = burn_read_data(o->drive, (off_t) (offst + 16) * (off_t) 2048,
|
||||||
@ -493,8 +493,8 @@ static int isoburn_inspect_partition(struct isoburn *o, uint32_t img_size,
|
|||||||
|| pvm->file_structure_version[0] != 1 )
|
|| pvm->file_structure_version[0] != 1 )
|
||||||
{ret= 2; goto ex;} /* failed sanity check */
|
{ret= 2; goto ex;} /* failed sanity check */
|
||||||
|
|
||||||
if(iso_read_lsb(pvm->vol_space_size, 4) + offst != img_size)
|
if(iso_read_lsb(pvm->vol_space_size, 4) + offst > img_size)
|
||||||
{ret= 2; goto ex;} /* Image ends do not match */
|
{ret= 2; goto ex;} /* Image ends do not match plausibly */
|
||||||
|
|
||||||
/* Now it is credible. Not yet clear is whether it is acceptable. */
|
/* Now it is credible. Not yet clear is whether it is acceptable. */
|
||||||
o->loaded_partition_offset= offst;
|
o->loaded_partition_offset= offst;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2017.11.25.095955"
|
#define Xorriso_timestamP "2018.05.08.092636"
|
||||||
|
Loading…
Reference in New Issue
Block a user