diff --git a/libisoburn/isofs_wrap.c b/libisoburn/isofs_wrap.c index c1c172aa..058e5eb2 100644 --- a/libisoburn/isofs_wrap.c +++ b/libisoburn/isofs_wrap.c @@ -167,22 +167,29 @@ int isoburn_make_iso_read_opts(struct burn_drive *d, struct isoburn_read_opts *read_opts, IsoReadOpts **ropts) { - int ret, int_num, dummy; + int ret, int_num; + off_t off_t_num, dummy; uint32_t ms_block; char *msg= NULL; msg= calloc(1, 160); *ropts= NULL; - ret = isoburn_disc_get_msc1(d, &int_num); + ret = isoburn_disc_get_msc1_v2(d, &off_t_num); if (ret <= 0) {ret= -2; goto ex;} - ms_block= int_num; + if(off_t_num > 0xffffffff) { + sprintf(msg, "Start address is outside 32 bit range."); + isoburn_msgs_submit(o, 0x00060000, msg, 0, "FAILURE", 0); + {ret= 0; goto ex;} + } + ms_block= off_t_num; if (o != NULL) o->image_start_lba= ms_block; - ret = isoburn_read_iso_head(d, int_num, &dummy, NULL, 0); + ret = isoburn_read_iso_head_v2(d, off_t_num, &dummy, NULL, 0); if (ret <= 0) { - sprintf(msg, "No ISO 9660 image at LBA %d.", int_num); + sprintf(msg, "No ISO 9660 image at LBA %lu.", + (unsigned long int) ms_block); isoburn_msgs_submit(o, 0x00060000, msg, 0, "WARNING", 0); {ret= 2; goto ex;} } diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 8446b54d..e79ab9d6 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2024.03.10.111205" +#define Xorriso_timestamP "2024.03.10.112148"