Bug fix: Option -mkdir yielded SIGSEGV due to a NULL pointer
This commit is contained in:
parent
b8788e5f9e
commit
1ceb1097e1
@ -611,6 +611,15 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
int target_is_split, hide_attrs;
|
||||
struct stat stbuf;
|
||||
|
||||
if (disk_path == NULL && !(flag & 1)) {
|
||||
Xorriso_msgs_submit(xorriso, 0,
|
||||
"Program error: Xorriso_graft_in(): disk_path == NULL && !(flag & 1)",
|
||||
0, "ABORT", 0);
|
||||
return(-1);
|
||||
}
|
||||
if (disk_path == NULL) {
|
||||
disk_path= "";
|
||||
} else {
|
||||
ret= Xorriso_path_is_excluded(xorriso, disk_path, !(flag&4));
|
||||
if(ret<0)
|
||||
return(ret);
|
||||
@ -626,6 +635,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
if(ret>=0)
|
||||
hide_attrs|= ret;
|
||||
}
|
||||
}
|
||||
|
||||
for(cpt= img_path; 1; cpt++) {
|
||||
cpt= strstr(cpt,"/.");
|
||||
@ -638,10 +648,14 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
break;
|
||||
}
|
||||
if(cpt!=NULL) {
|
||||
if(disk_path[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"Unsupported relative addressing in iso_rr_path %s (disk: %s)",
|
||||
Text_shellsafe(img_path, sfe, 0), Text_shellsafe(disk_path, sfe2, 0));
|
||||
"Unsupported relative addressing in iso_rr_path %s",
|
||||
Text_shellsafe(img_path, sfe, 0));
|
||||
if(disk_path[0])
|
||||
sprintf(xorriso->info_text + strlen(xorriso->info_text),
|
||||
" (disk: %s)", Text_shellsafe(disk_path, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
@ -740,7 +754,8 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
return(ret);
|
||||
if(ret==3) {
|
||||
sprintf(xorriso->info_text, "User revoked adding of: %s",
|
||||
Text_shellsafe(disk_path, sfe, 0));
|
||||
disk_path[0] ? Text_shellsafe(disk_path, sfe, 0)
|
||||
: Text_shellsafe(img_path, sfe, 0));
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
|
||||
return(3*!!(flag&16));
|
||||
}
|
||||
@ -748,6 +763,7 @@ int Xorriso_graft_in(struct XorrisO *xorriso, void *boss_iter,
|
||||
goto handle_path_node;
|
||||
}
|
||||
|
||||
if (disk_path[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"While grafting '%s' : '%s' exists and may not be overwritten",
|
||||
@ -763,6 +779,7 @@ handle_path_node:;
|
||||
ret= iso_tree_add_new_dir(dir, apt, &hdir);
|
||||
if(ret<0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
if(disk_path[0])
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
Xorriso_report_iso_error(xorriso, img_path, ret,
|
||||
"Cannot create directory", 0, "FAILURE", 1);
|
||||
@ -777,7 +794,7 @@ handle_path_node:;
|
||||
iso_node_set_uid((IsoNode *) dir, geteuid());
|
||||
iso_node_set_gid((IsoNode *) dir, getegid());
|
||||
|
||||
if(disk_path!=NULL && !done)
|
||||
if(disk_path[0] && !done)
|
||||
/* This not only copies disk directory properties
|
||||
but also sets eventual hide_attrs */
|
||||
Xorriso_copy_implicit_properties(xorriso, dir, img_path, path, disk_path,
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2011.01.26.210359"
|
||||
#define Xorriso_timestamP "2011.01.31.135917"
|
||||
|
Loading…
Reference in New Issue
Block a user