Fixed a SIGSEGV with xorriso -version run

This commit is contained in:
Thomas Schmitt 2007-10-18 18:57:19 +00:00
parent d248429f63
commit d444c29909
4 changed files with 9 additions and 3 deletions

View File

@ -1725,6 +1725,7 @@ static char Xorriso_sys_rc_nameS[Xorriso_rc_nuM][80]= {
"placeholder for $HOME/.xorrisorc"
};
int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
{
int i;
@ -1733,6 +1734,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
*xorriso= m= TSOB_FELD(struct XorrisO,1);
if(m==NULL)
return(-1);
m->libs_are_started= 0;
strncpy(m->progname,progname,sizeof(m->progname)-1);
m->progname[sizeof(m->progname)-1]= 0;
if(getcwd(m->initial_wdx,sizeof(m->initial_wdx)-1)==NULL)
@ -4980,7 +4982,7 @@ int Xorriso_main(int argc, char **argv)
/* The prescan of arguments performs actions which have to happen before
the normal processing of startup files and arguments. Currently:
-no_rc and single-argumenti runs like -help or -version.
-no_rc and single-argument runs like -help or -version.
*/
ret= Xorriso_prescan_args(xorriso,argc,argv,0);
if(ret==0)

View File

@ -47,6 +47,8 @@ typedef int (*Cleanup_app_handler_T)();
struct XorrisO { /* the global context of xorriso */
int libs_are_started;
/* source */
char progname[SfileadrL];
char initial_wdx[SfileadrL];

View File

@ -1 +1 @@
#define Xorriso_timestamP "2007.10.18.183200"
#define Xorriso_timestamP "2007.10.18.185731"

View File

@ -63,12 +63,12 @@ int Xorriso_startup_libraries(struct XorrisO *xorriso, int flag)
}
ret= isoburn_initialize();
if(ret==0) {
Xorriso_process_msg_queues(xorriso,0);
sprintf(xorriso->info_text, "Cannot initialize libraries");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
free(handler_prefix);
return(0);
}
xorriso->libs_are_started= 1;
queue_sev= "DEBUG";
if(xorriso->library_msg_direct_print) {
@ -505,6 +505,8 @@ int Xorriso_process_msg_queues(struct XorrisO *xorriso, int flag)
int ret, error_code= 0, os_errno= 0, count= 0, pass;
char severity[80];
if(!xorriso->libs_are_started)
return(1);
for(pass= 0; pass< 2; pass++) {
while(1) {
if(pass==0)