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

This commit is contained in:
Thomas Schmitt 2012-07-25 18:27:01 +00:00
parent 3e6e961b90
commit c8f6f57c96
2 changed files with 10 additions and 7 deletions

View File

@ -2425,7 +2425,7 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize,
int ret, full_size, i; int ret, full_size, i;
char *headpt; char *headpt;
struct burn_drive_info *dinfo; struct burn_drive_info *dinfo;
struct burn_drive *drive; struct burn_drive *drive = NULL;
off_t seek_ret, to_write; off_t seek_ret, to_write;
int tag_type; int tag_type;
uint32_t pos, range_start, range_size, next_tag; 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)) { if(!(flag & 2)) {
/* head_buffer was not filled yet. Read it from output media. */ /* head_buffer was not filled yet. Read it from output media. */
if(burn_drive_get_drive_role(drive) == 5) /* write-only */ if(drive != NULL)
return(2); if(burn_drive_get_drive_role(drive) == 5) /* write-only */
return(2);
if(job != NULL && job->data_to_fd >= 0) { if(job != NULL && job->data_to_fd >= 0) {
if((flag & 8) && job->sector_map != NULL) { if((flag & 8) && job->sector_map != NULL) {
ret= Sectorbitmap_bytes_are_set(job->sector_map, 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); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
return(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) { if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, 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); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
return(0); return(0);
} }
} else { } 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) { if(ret<=0) {
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, sprintf(xorriso->info_text,

View File

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