diff --git a/xorriso/write_run.c b/xorriso/write_run.c index 7f611a21..d3721cde 100644 --- a/xorriso/write_run.c +++ b/xorriso/write_run.c @@ -390,7 +390,7 @@ ex:; int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag) { int ret; - char sfe[5*SfileadrL], *cpt; + char *cpt; struct burn_drive_info *source_dinfo; struct burn_drive *source_drive; IsoImage *image= NULL; @@ -447,8 +447,8 @@ int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag) load_size= ((stbuf.st_size / (off_t) 512) + !!(stbuf.st_size % (off_t) 512)) * 512; } - sprintf(xorriso->info_text, "Adding boot image %s", - Text_shellsafe(bin_path, sfe, 0)); + sprintf(xorriso->info_text, "Adding boot image "); + Text_shellsafe(bin_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0); if(emul == 0) @@ -461,8 +461,8 @@ int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag) ret= Xorriso_node_from_path(xorriso, image, bin_path, &node, 1); if(ret <= 0) { sprintf(xorriso->info_text, - "Cannot find in ISO image: -boot_image ... bin_path=%s", - Text_shellsafe(bin_path, sfe, 0)); + "Cannot find in ISO image: -boot_image ... bin_path="); + Text_shellsafe(bin_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); {ret= 0; goto ex;} } @@ -482,8 +482,8 @@ int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag) if(ret > 0) { if(!xorriso->do_overwrite) { sprintf(xorriso->info_text, - "May not overwite existing -boot_image ... cat_path=%s", - Text_shellsafe(xorriso->boot_image_cat_path, sfe, 0)); + "May not overwite existing -boot_image ... cat_path="); + Text_shellsafe(xorriso->boot_image_cat_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); {ret= 0; goto ex;} } @@ -491,8 +491,8 @@ int Xorriso_attach_boot_image(struct XorrisO *xorriso, int flag) 8 | (xorriso->do_overwrite == 1)); if(ret != 1) { sprintf(xorriso->info_text, - "Could not remove existing -boot_image cat_path=%s", - Text_shellsafe(xorriso->boot_image_cat_path, sfe, 0)); + "Could not remove existing -boot_image cat_path="); + Text_shellsafe(xorriso->boot_image_cat_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); {ret= 0; goto ex;} } @@ -555,7 +555,7 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) { int ret, relax= 0, i, pacifier_speed= 0, data_lba, ext, is_bootable= 0; int freshly_bootable= 0, hide_attr, pad_by_libisofs= 0, signal_mode; - char xorriso_id[256], *img_id, sfe[5*SfileadrL], *out_cs, *part_image; + char *xorriso_id= NULL, *img_id, *sfe= NULL, *out_cs, *part_image; struct isoburn_imgen_opts *sopts= NULL; struct burn_drive_info *dinfo, *source_dinfo; struct burn_drive *drive, *source_drive; @@ -569,13 +569,17 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) IsoImage *image= NULL; IsoNode *root_node; int profile_number; - char profile_name[80]; + char *profile_name= NULL; IsoBoot *bootcat_node; uint32_t padding; + Xorriso_alloc_meM(sfe, char, 5 * SfileadrL); + Xorriso_alloc_meM(xorriso_id, char, 256); + Xorriso_alloc_meM(profile_name, char, 80); + ret= Xorriso_finish_hl_update(xorriso, 0); if(ret <= 0) - return(ret); + goto ex; out_cs= xorriso->out_charset; if(out_cs == NULL) @@ -584,12 +588,12 @@ int Xorriso_write_session(struct XorrisO *xorriso, int flag) if(!(flag & 1)) { ret= Xorriso_auto_format(xorriso, 0); if(ret <=0 ) - return(0); + {ret= 0; goto ex;} } ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive, "on attempt to write", 2); if(ret<=0) - return(0); + goto ex; s= isoburn_disc_get_status(drive); if(xorriso->out_drive_handle == xorriso->in_drive_handle) { @@ -1007,6 +1011,9 @@ ex:; isoburn_igopt_destroy(&sopts, 0); Xorriso_process_msg_queues(xorriso,0); Xorriso_append_scdbackup_record(xorriso, 0); + Xorriso_free_meM(sfe); + Xorriso_free_meM(xorriso_id); + Xorriso_free_meM(profile_name); return(ret); cancel_iso:; @@ -1636,21 +1643,25 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address, off_t fixed_size= 0; struct burn_source *data_src= NULL, *fifo_src= NULL; enum burn_disc_status disc_state; - char reasons[BURN_REASONS_LEN], sfe[5*SfileadrL], profile_name[80]; - char head_buffer[64*1024]; + char *reasons= NULL, *profile_name= NULL; + char *head_buffer= NULL; + + Xorriso_alloc_meM(reasons, char, BURN_REASONS_LEN); + Xorriso_alloc_meM(profile_name, char, 80); + Xorriso_alloc_meM(head_buffer, char, 64 * 1024); ret= Xorriso_may_burn(xorriso, 0); if(ret <= 0) - return(0); + {ret= 0; goto ex;} ret= Xorriso_auto_format(xorriso, 0); if(ret <=0 ) - return(0); + {ret= 0; goto ex;} do_isosize= !!(flag&2); ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive, "on attempt to burn track", 2); if(ret<=0) - return(0); + {ret= 0; goto ex;} ret= Xorriso_make_write_options(xorriso, drive, &burn_options, 0); if(ret<=0) goto ex; @@ -1682,8 +1693,8 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address, if(fd>=0) data_src= burn_fd_source_new(fd, -1, fixed_size); if(data_src==NULL) { - sprintf(xorriso->info_text, "Could not open data source %s", - Text_shellsafe(track_source,sfe,0)); + sprintf(xorriso->info_text, "Could not open data source "); + Text_shellsafe(track_source, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); ret= 0; goto ex; } @@ -1853,8 +1864,9 @@ int Xorriso_burn_track(struct XorrisO *xorriso, off_t write_start_address, if(ret <= 0) goto ex; } - sprintf(xorriso->info_text, "Writing to %s completed successfully.\n\n", - Text_shellsafe(xorriso->outdev,sfe,0)); + sprintf(xorriso->info_text, "Writing to "); + Text_shellsafe(xorriso->outdev, xorriso->info_text, 1); + strcat(xorriso->info_text, " completed successfully.\n\n"); Xorriso_info(xorriso, 0); ret= 1; ex:; @@ -1871,6 +1883,9 @@ ex:; burn_source_free(xorriso->pacifier_fifo); xorriso->pacifier_fifo= NULL; xorriso->run_state= 0; /* Indicate that burning has ended */ + Xorriso_free_meM(reasons); + Xorriso_free_meM(profile_name); + Xorriso_free_meM(head_buffer); return(ret); } @@ -2392,15 +2407,16 @@ int Xorriso_update_iso_lba0(struct XorrisO *xorriso, int iso_lba, int isosize, int Xorriso_set_system_area_path(struct XorrisO *xorriso, char *path, int flag) { int ret; - char eff_src[SfileadrL]; + char *eff_src= NULL; if(path[0] == 0) { xorriso->system_area_disk_path[0]= 0; - return(1); + {ret= 1; goto ex;} } + Xorriso_alloc_meM(eff_src, char, SfileadrL); ret= Xorriso_normalize_img_path(xorriso, xorriso->wdx, path, eff_src, 2|4|16); if(ret < 0) - return(ret); + goto ex; if(ret == 0) { sprintf(xorriso->info_text, "Given path does not exist on disk: -boot_image system_area="); @@ -2412,11 +2428,14 @@ int Xorriso_set_system_area_path(struct XorrisO *xorriso, char *path, int flag) "Given path leads to a directory: -boot_image system_area="); Text_shellsafe(eff_src, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); - return(0); + {ret= 0; goto ex;} } ret= Sfile_str(xorriso->system_area_disk_path, eff_src, 0); if(ret <= 0) - return(-1); - return(1); + {ret= -1; goto ex;} + ret= 1; +ex: + Xorriso_free_meM(eff_src); + return(ret); } diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index fab53965..73dcde63 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.05.07.184625" +#define Xorriso_timestamP "2011.05.08.083929"