Bug fix: SIGSEGV by uninitialized local variable with -check_media patch_lba0="on". Regression by version 1.0.6

master
Thomas Schmitt 10 years ago
parent 3e6e961b90
commit c8f6f57c96
  1. 15
      xorriso/write_run.c
  2. 2
      xorriso/xorriso_timestamp.h

@ -2425,7 +2425,7 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
int ret, full_size, i;
char *headpt;
struct burn_drive_info *dinfo;
struct burn_drive *drive;
struct burn_drive *drive = NULL;
off_t seek_ret, to_write;
int tag_type;
uint32_t pos, range_start, range_size, next_tag;
@ -2455,8 +2455,9 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
if(!(flag & 2)) {
/* head_buffer was not filled yet. Read it from output media. */
if(burn_drive_get_drive_role(drive) == 5) /* write-only */
return(2);
if(drive != NULL)
if(burn_drive_get_drive_role(drive) == 5) /* write-only */
return(2);
if(job != NULL && job->data_to_fd >= 0) {
if((flag & 8) && job->sector_map != NULL) {
ret= Sectorbitmap_bytes_are_set(job->sector_map,
@ -2484,16 +2485,18 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
return(0);
}
ret= isoburn_read_iso_head(drive, 0, &isosize, head_buffer, 1 << 13);
ret= isoburn_read_iso_head(NULL, 0, &isosize, head_buffer, 1 << 13);
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text,
"Alleged session start does not like ISO 9660.");
"Alleged session start does not look like ISO 9660.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
return(0);
}
} else {
ret= isoburn_read_iso_head(drive, iso_lba, &isosize, head_buffer, 2);
ret= 0;
if(drive != 0)
ret= isoburn_read_iso_head(drive, iso_lba, &isosize, head_buffer, 2);
if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text,

@ -1 +1 @@
#define Xorriso_timestamP "2012.07.25.181415"
#define Xorriso_timestamP "2012.07.25.182507"

Loading…
Cancel
Save