Fixed a SIGSEGV with empty drive

This commit is contained in:
2007-10-18 22:56:43 +00:00
parent 6a7329cd11
commit 38adcb045b
4 changed files with 15 additions and 7 deletions

View File

@@ -3409,7 +3409,7 @@ int Xorriso_option_dev(struct XorrisO *xorriso, char *adr, int flag)
ret= Xorriso_give_up_drive(xorriso, flag&3);
else
ret= Xorriso_aquire_drive(xorriso, adr, flag&3);
if(ret<=0)
if(ret<0)
return(ret);
if(Sfile_str(xorriso->indev, adr, 0)<=0)
return(-1);

View File

@@ -1 +1 @@
#define Xorriso_timestamP "2007.10.18.221756"
#define Xorriso_timestamP "2007.10.18.225654"

View File

@@ -184,9 +184,9 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
xorriso->in_volset_handle= volset;
ret= 1;
ex:
if(ret<=0) {
if(ret<0) {
/* >>> ??? give up not-so-suitable drive ? */;
/* >>> give up drive */;
}
Xorriso_process_msg_queues(xorriso,0);
@@ -210,7 +210,8 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
"on attempt to give drive up", 0);
isoburn_drive_release(drive,0);
iso_volset_free((struct iso_volset *) xorriso->in_volset_handle);
if(xorriso->in_volset_handle!=NULL)
iso_volset_free((struct iso_volset *) xorriso->in_volset_handle);
xorriso->in_volset_handle= NULL;
xorriso->volset_change_pending= 0;