Made isoburn_make_iso_read_opts() ready for long block adresses

This commit is contained in:
Thomas Schmitt 2024-03-10 12:24:09 +01:00
parent d0682a17b9
commit bae9516439
2 changed files with 13 additions and 6 deletions

View File

@ -167,22 +167,29 @@ int isoburn_make_iso_read_opts(struct burn_drive *d,
struct isoburn_read_opts *read_opts, struct isoburn_read_opts *read_opts,
IsoReadOpts **ropts) IsoReadOpts **ropts)
{ {
int ret, int_num, dummy; int ret, int_num;
off_t off_t_num, dummy;
uint32_t ms_block; uint32_t ms_block;
char *msg= NULL; char *msg= NULL;
msg= calloc(1, 160); msg= calloc(1, 160);
*ropts= NULL; *ropts= NULL;
ret = isoburn_disc_get_msc1(d, &int_num); ret = isoburn_disc_get_msc1_v2(d, &off_t_num);
if (ret <= 0) if (ret <= 0)
{ret= -2; goto ex;} {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) if (o != NULL)
o->image_start_lba= ms_block; 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) { 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); isoburn_msgs_submit(o, 0x00060000, msg, 0, "WARNING", 0);
{ret= 2; goto ex;} {ret= 2; goto ex;}
} }

View File

@ -1 +1 @@
#define Xorriso_timestamP "2024.03.10.111205" #define Xorriso_timestamP "2024.03.10.112148"