New -follow occasion "concat"

This commit is contained in:
Thomas Schmitt 2014-04-21 16:56:44 +00:00
parent 642ec7ca89
commit 9ae473dac0
9 changed files with 121 additions and 94 deletions

View File

@ -159,6 +159,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->follow_link_limit= 100; m->follow_link_limit= 100;
m->resolve_link_rec_count= 0; m->resolve_link_rec_count= 0;
m->resolve_link_rec_limit= 100; m->resolve_link_rec_limit= 100;
m->do_follow_concat= 0;
m->do_follow_mount= 1; m->do_follow_mount= 1;
m->do_global_uid= 0; m->do_global_uid= 0;
m->global_uid= 0; m->global_uid= 0;

View File

@ -2003,15 +2003,13 @@ int Xorriso_is_concat_target(struct XorrisO *xorriso, char *target,
} }
if(*ftype == 3) { if(*ftype == 3) {
if(!xorriso->do_follow_concat) {
/* >>> why= "May not follow symbolic link. No -follow \"...:concat:...\".";
if follow_links is enabled : obtain target type goto not_usable;
*ftype= Sfile_type(target, 1 | 4 | 8); }
else *ftype= Sfile_type(target, 1 | 4 | 8);
*/ if(*ftype == -1)
return(2); /* not yet existing regular */
why= "May not follow symbolic link.";
goto not_usable;
} }
if(*ftype == 2) { if(*ftype == 2) {
why= "May not write data into a directory."; why= "May not write data into a directory.";

View File

@ -1305,17 +1305,19 @@ ex:;
/* Option -follow */ /* Option -follow */
int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag) int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag)
{ {
int was_fl, was_fm, was_fpr, was_fpt, l; int was_fl, was_fm, was_fpr, was_fpt, was_fc, l;
double num; double num;
char *cpt, *npt; char *cpt, *npt;
was_fpt= xorriso->do_follow_pattern; was_fpt= xorriso->do_follow_pattern;
was_fpr= xorriso->do_follow_param; was_fpr= xorriso->do_follow_param;
was_fl= xorriso->do_follow_links; was_fl= xorriso->do_follow_links;
was_fc= xorriso->do_follow_concat;
was_fm= xorriso->do_follow_mount; was_fm= xorriso->do_follow_mount;
xorriso->do_follow_pattern= 0; xorriso->do_follow_pattern= 0;
xorriso->do_follow_param= 0; xorriso->do_follow_param= 0;
xorriso->do_follow_links= 0; xorriso->do_follow_links= 0;
xorriso->do_follow_concat= 0;
xorriso->do_follow_mount= 0; xorriso->do_follow_mount= 0;
npt= cpt= mode; npt= cpt= mode;
for(cpt= mode; npt!=NULL; cpt= npt+1) { for(cpt= mode; npt!=NULL; cpt= npt+1) {
@ -1330,16 +1332,19 @@ int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag)
xorriso->do_follow_pattern= 0; xorriso->do_follow_pattern= 0;
xorriso->do_follow_param= 0; xorriso->do_follow_param= 0;
xorriso->do_follow_links= 0; xorriso->do_follow_links= 0;
xorriso->do_follow_concat= 0;
xorriso->do_follow_mount= 0; xorriso->do_follow_mount= 0;
} else if(strncmp(cpt, "on", l)==0) { } else if(strncmp(cpt, "on", l)==0) {
xorriso->do_follow_pattern= 1; xorriso->do_follow_pattern= 1;
xorriso->do_follow_param= 1; xorriso->do_follow_param= 1;
xorriso->do_follow_links= 1; xorriso->do_follow_links= 1;
xorriso->do_follow_concat= 1;
xorriso->do_follow_mount= 1; xorriso->do_follow_mount= 1;
} else if(strncmp(cpt, "default", l)==0) { } else if(strncmp(cpt, "default", l)==0) {
xorriso->do_follow_pattern= 1; xorriso->do_follow_pattern= 1;
xorriso->do_follow_param= 0; xorriso->do_follow_param= 0;
xorriso->do_follow_links= 0; xorriso->do_follow_links= 0;
xorriso->do_follow_concat= 0;
xorriso->do_follow_mount= 1; xorriso->do_follow_mount= 1;
xorriso->follow_link_limit= 100; xorriso->follow_link_limit= 100;
} else if(strncmp(cpt, "link", l)==0 || strncmp(cpt,"links", l)==0) { } else if(strncmp(cpt, "link", l)==0 || strncmp(cpt,"links", l)==0) {
@ -1350,6 +1355,8 @@ int Xorriso_option_follow(struct XorrisO *xorriso, char *mode, int flag)
xorriso->do_follow_param= 1; xorriso->do_follow_param= 1;
} else if(strncmp(cpt, "pattern", l)==0) { } else if(strncmp(cpt, "pattern", l)==0) {
xorriso->do_follow_pattern= 1; xorriso->do_follow_pattern= 1;
} else if(strncmp(cpt, "concat", l)==0) {
xorriso->do_follow_concat= 1;
} else if(strncmp(cpt, "limit=", 6)==0) { } else if(strncmp(cpt, "limit=", 6)==0) {
sscanf(cpt+6, "%lf", &num); sscanf(cpt+6, "%lf", &num);
if(num<=0 || num>1.0e6) { if(num<=0 || num>1.0e6) {
@ -1369,6 +1376,7 @@ sorry_ex:
xorriso->do_follow_pattern= was_fpt; xorriso->do_follow_pattern= was_fpt;
xorriso->do_follow_param= was_fpr; xorriso->do_follow_param= was_fpr;
xorriso->do_follow_links= was_fl; xorriso->do_follow_links= was_fl;
xorriso->do_follow_concat= was_fc;
xorriso->do_follow_mount= was_fm; xorriso->do_follow_mount= was_fm;
return(0); return(0);
} }
@ -1927,7 +1935,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" Like -not_list but with line rules as -dialog \"on\".", " Like -not_list but with line rules as -dialog \"on\".",
" -not_mgt \"reset\"|\"on\"|\"off\"|\"param_on\"|\"subtree_on\"|\"ignore_on\"", " -not_mgt \"reset\"|\"on\"|\"off\"|\"param_on\"|\"subtree_on\"|\"ignore_on\"",
" Control effect of exclusion lists.", " Control effect of exclusion lists.",
" -follow \"on\"|\"pattern:param:link:mount:limit=#\"|\"default\"|\"off\"", " -follow \"on\"|\"pattern:param:link:concat:mount:limit=#\"|\"default\"|\"off\"",
" Follow symbolic links and mount points within disk_path.", " Follow symbolic links and mount points within disk_path.",
" -overwrite \"on\"|\"nondir\"|\"off\"", " -overwrite \"on\"|\"nondir\"|\"off\"",
" Allow or disallow to overwrite existing files in ISO image.", " Allow or disallow to overwrite existing files in ISO image.",

View File

@ -3022,7 +3022,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
is_default= (xorriso->do_follow_pattern && (!xorriso->do_follow_param) is_default= (xorriso->do_follow_pattern && (!xorriso->do_follow_param)
&& xorriso->do_follow_mount && (!xorriso->do_follow_links) && xorriso->do_follow_mount && (!xorriso->do_follow_links)
&& xorriso->follow_link_limit==100); && xorriso->follow_link_limit==100
&& (!xorriso->do_follow_concat));
mode[0]= 0; mode[0]= 0;
if(xorriso->do_follow_pattern && if(xorriso->do_follow_pattern &&
!(xorriso->do_follow_links && xorriso->do_follow_mount)) !(xorriso->do_follow_links && xorriso->do_follow_mount))
@ -3031,6 +3032,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
strcat(mode,":param"); strcat(mode,":param");
if(xorriso->do_follow_links) if(xorriso->do_follow_links)
strcat(mode,":link"); strcat(mode,":link");
if(xorriso->do_follow_concat)
strcat(mode,":concat");
if(xorriso->do_follow_mount) if(xorriso->do_follow_mount)
strcat(mode,":mount"); strcat(mode,":mount");
if(mode[0]==0) if(mode[0]==0)

View File

@ -1337,25 +1337,31 @@ handled as one parameter for \-not_paths resp. \-not_leaf.
.TP .TP
\fB\-follow\fR occasion[:occasion[...]] \fB\-follow\fR occasion[:occasion[...]]
Enable or disable resolution of symbolic links and mountpoints under Enable or disable resolution of symbolic links and mountpoints under
disk_paths. This applies to actions \-add, \-du*x, \-ls*x, \-findx, disk_paths. This applies to actions \-add, \-du*x, \-ls*x, \-findx, \-concat,
and to \-disk_pattern expansion. and to \-disk_pattern expansion.
.br .br
There are two kinds of follow decisison to be made: There are three kinds of follow decisison to be made:
.br .br
"link" is the hop from a symbolic link to its target file object. \fBlink\fR is the hop from a symbolic link to its target file object for the
purpose of reading. I.e. not for command \-concat.
If enabled then symbolic links are handled as their target file objects, If enabled then symbolic links are handled as their target file objects,
else symbolic links are handled as themselves. else symbolic links are handled as themselves.
.br .br
"mount" is the hop from one filesystem to another subordinate filesystem. \fBmount\fR is the hop from one filesystem to another subordinate filesystem.
If enabled then mountpoint directories are handled as any other directory, If enabled then mountpoint directories are handled as any other directory,
else mountpoints are handled as empty directories if they are encountered in else mountpoints are handled as empty directories if they are encountered in
directory tree traversals. directory tree traversals.
.br .br
\fBconcat\fR is the hop from a symbolic link to its target file object for
the purpose of writing. I.e. for command \-concat. This is a security risk !
.br
Less general than above occasions: Less general than above occasions:
.br .br
"pattern" is mount and link hopping, but only during \-disk_pattern expansion. \fBpattern\fR is mount and link hopping, but only during \-disk_pattern
expansion.
.br .br
"param" is link hopping for parameter words (after eventual pattern expansion). \fBparam\fR is link hopping for parameter words (after eventual pattern
expansion).
If enabled then \-ls*x will show the link targets rather than the links If enabled then \-ls*x will show the link targets rather than the links
themselves. \-du*x, \-findx, and \-add will process the link targets but not themselves. \-du*x, \-findx, and \-add will process the link targets but not
follow links in an eventual directory tree below the targets (unless "link" follow links in an eventual directory tree below the targets (unless "link"
@ -1364,19 +1370,19 @@ is enabled).
Occasions can be combined in a colon separated list. All occasions Occasions can be combined in a colon separated list. All occasions
mentioned in the list will then lead to a positive follow decision. mentioned in the list will then lead to a positive follow decision.
.br .br
"off" prevents any positive follow decision. Use it if no other occasion \fBoff\fR prevents any positive follow decision. Use it if no other occasion
applies. applies.
.br .br
Shortcuts: Shortcuts:
.br .br
"default" is equivalent to "pattern:mount:limit=100". \fBdefault\fR is equivalent to "pattern:mount:limit=100".
.br .br
"on" always decides positive. Equivalent to "link:mount". \fBon\fR always decides positive. Equivalent to "link:mount:concat".
.br .br
Not an occasion but an optional setting is: Not an occasion but an optional setting is:
.br .br
"limit="<number> which sets the maximum number of link hops. \fBlimit=\fR<number> which sets the maximum number of link hops.
A link hop consists of a sequence of symbolic links and a final target A link hop consists of a sequence of symbolic links and a final target
of different type. Nevertheless those hops can loop. Example: of different type. Nevertheless those hops can loop. Example:
.br .br

View File

@ -1231,33 +1231,37 @@ File: xorriso.info, Node: SetInsert, Next: Manip, Prev: Insert, Up: Commands
-follow occasion[:occasion[...]] -follow occasion[:occasion[...]]
Enable or disable resolution of symbolic links and mountpoints Enable or disable resolution of symbolic links and mountpoints
under disk_paths. This applies to actions -add, -du*x, -ls*x, under disk_paths. This applies to actions -add, -du*x, -ls*x,
-findx, and to -disk_pattern expansion. -findx, -concat, and to -disk_pattern expansion.
There are two kinds of follow decisison to be made: There are three kinds of follow decisison to be made:
"link" is the hop from a symbolic link to its target file object. *link* is the hop from a symbolic link to its target file object
If enabled then symbolic links are handled as their target file for the purpose of reading. I.e. not for command -concat. If
enabled then symbolic links are handled as their target file
objects, else symbolic links are handled as themselves. objects, else symbolic links are handled as themselves.
"mount" is the hop from one filesystem to another subordinate *mount* is the hop from one filesystem to another subordinate
filesystem. If enabled then mountpoint directories are handled as filesystem. If enabled then mountpoint directories are handled as
any other directory, else mountpoints are handled as empty any other directory, else mountpoints are handled as empty
directories if they are encountered in directory tree traversals. directories if they are encountered in directory tree traversals.
*concat* is the hop from a symbolic link to its target file object
for the purpose of writing. I.e. for command -concat. This is a
security risk !
Less general than above occasions: Less general than above occasions:
"pattern" is mount and link hopping, but only during -disk_pattern *pattern* is mount and link hopping, but only during -disk_pattern
expansion. expansion.
"param" is link hopping for parameter words (after eventual *param* is link hopping for parameter words (after eventual pattern
pattern expansion). If enabled then -ls*x will show the link expansion). If enabled then -ls*x will show the link targets
targets rather than the links themselves. -du*x, -findx, and -add rather than the links themselves. -du*x, -findx, and -add will
will process the link targets but not follow links in an eventual process the link targets but not follow links in an eventual
directory tree below the targets (unless "link" is enabled). directory tree below the targets (unless "link" is enabled).
Occasions can be combined in a colon separated list. All occasions Occasions can be combined in a colon separated list. All occasions
mentioned in the list will then lead to a positive follow decision. mentioned in the list will then lead to a positive follow decision.
"off" prevents any positive follow decision. Use it if no other *off* prevents any positive follow decision. Use it if no other
occasion applies. occasion applies.
Shortcuts: Shortcuts:
"default" is equivalent to "pattern:mount:limit=100". *default* is equivalent to "pattern:mount:limit=100".
"on" always decides positive. Equivalent to "link:mount". *on* always decides positive. Equivalent to "link:mount:concat".
Not an occasion but an optional setting is: Not an occasion but an optional setting is:
"limit="<number> which sets the maximum number of link hops. A *limit=*<number> which sets the maximum number of link hops. A
link hop consists of a sequence of symbolic links and a final link hop consists of a sequence of symbolic links and a final
target of different type. Nevertheless those hops can loop. target of different type. Nevertheless those hops can loop.
Example: Example:
@ -5124,13 +5128,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -osirrox enables ISO-to-disk copying: Restore. (line 18) * -osirrox enables ISO-to-disk copying: Restore. (line 18)
* -out_charset sets output character set: SetWrite. (line 276) * -out_charset sets output character set: SetWrite. (line 276)
* -outdev acquires a drive for output: AqDrive. (line 31) * -outdev acquires a drive for output: AqDrive. (line 31)
* -overwrite enables overwriting in ISO: SetInsert. (line 127) * -overwrite enables overwriting in ISO: SetInsert. (line 131)
* -pacifier controls pacifier text form: Emulation. (line 165) * -pacifier controls pacifier text form: Emulation. (line 165)
* -padding sets amount or mode of image padding: SetWrite. (line 384) * -padding sets amount or mode of image padding: SetWrite. (line 384)
* -page set terminal geometry: DialogCtl. (line 19) * -page set terminal geometry: DialogCtl. (line 19)
* -paste_in copies file into disk file: Restore. (line 124) * -paste_in copies file into disk file: Restore. (line 124)
* -path_list inserts paths from disk file: Insert. (line 80) * -path_list inserts paths from disk file: Insert. (line 80)
* -pathspecs sets meaning of = with -add: SetInsert. (line 118) * -pathspecs sets meaning of = with -add: SetInsert. (line 122)
* -pkt_output consolidates text output: Frontend. (line 7) * -pkt_output consolidates text output: Frontend. (line 7)
* -preparer_id sets preparer id: SetWrite. (line 250) * -preparer_id sets preparer id: SetWrite. (line 250)
* -print prints result text line: Scripting. (line 110) * -print prints result text line: Scripting. (line 110)
@ -5183,7 +5187,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 69) (line 69)
* -sleep waits for a given time span: Scripting. (line 125) * -sleep waits for a given time span: Scripting. (line 125)
* -speed set write speed: SetWrite. (line 302) * -speed set write speed: SetWrite. (line 302)
* -split_size enables large file splitting: SetInsert. (line 140) * -split_size enables large file splitting: SetInsert. (line 144)
* -status shows current settings: Scripting. (line 47) * -status shows current settings: Scripting. (line 47)
* -status_history_max curbs -status history: Scripting. (line 56) * -status_history_max curbs -status history: Scripting. (line 56)
* -stdio_sync controls stdio buffer: SetWrite. (line 340) * -stdio_sync controls stdio buffer: SetWrite. (line 340)
@ -5333,7 +5337,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, show id strings, -pvd_info: Inquiry. (line 115) * Image, show id strings, -pvd_info: Inquiry. (line 115)
* Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 124) * Image, show MBR, GPT, and alike, -pvd_info: Inquiry. (line 124)
* Input Character Set, _definition: Charset. (line 25) * Input Character Set, _definition: Charset. (line 25)
* Insert, enable overwriting, -overwrite: SetInsert. (line 127) * Insert, enable overwriting, -overwrite: SetInsert. (line 131)
* Insert, file exclusion absolute, -not_paths: SetInsert. (line 55) * Insert, file exclusion absolute, -not_paths: SetInsert. (line 55)
* Insert, file exclusion from file, -not_list: SetInsert. (line 67) * Insert, file exclusion from file, -not_list: SetInsert. (line 67)
* Insert, file exclusion pattern, -not_leaf: SetInsert. (line 62) * Insert, file exclusion pattern, -not_leaf: SetInsert. (line 62)
@ -5342,10 +5346,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Insert, if different, -update: Insert. (line 104) * Insert, if different, -update: Insert. (line 104)
* Insert, if different, -update_l: Insert. (line 126) * Insert, if different, -update_l: Insert. (line 126)
* Insert, if different, -update_r: Insert. (line 115) * Insert, if different, -update_r: Insert. (line 115)
* Insert, large file splitting, -split_size: SetInsert. (line 140) * Insert, large file splitting, -split_size: SetInsert. (line 144)
* Insert, limit data file size, -file_size_limit: SetInsert. (line 7) * Insert, limit data file size, -file_size_limit: SetInsert. (line 7)
* Insert, links or mount points, -follow: SetInsert. (line 76) * Insert, links or mount points, -follow: SetInsert. (line 76)
* Insert, meaning of = with -add, -pathspecs: SetInsert. (line 118) * Insert, meaning of = with -add, -pathspecs: SetInsert. (line 122)
* Insert, non-dashed arguments, -add_plainly: Insert. (line 66) * Insert, non-dashed arguments, -add_plainly: Insert. (line 66)
* Insert, path, -map: Insert. (line 90) * Insert, path, -map: Insert. (line 90)
* Insert, path, -map_single: Insert. (line 95) * Insert, path, -map_single: Insert. (line 95)
@ -5398,7 +5402,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Ownership, in ISO image, -chown_r: Manip. (line 54) * Ownership, in ISO image, -chown_r: Manip. (line 54)
* Partition offset, _definition: Bootable. (line 180) * Partition offset, _definition: Bootable. (line 180)
* Partition table, _definition: Bootable. (line 141) * Partition table, _definition: Bootable. (line 141)
* Pathspec, _definition: SetInsert. (line 120) * Pathspec, _definition: SetInsert. (line 124)
* Pattern expansion, _definition: Processing. (line 24) * Pattern expansion, _definition: Processing. (line 24)
* Pattern expansion, for disk paths, -disk_pattern: Insert. (line 36) * Pattern expansion, for disk paths, -disk_pattern: Insert. (line 36)
* Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10) * Pattern expansion, for ISO paths, -iso_rr_pattern: Manip. (line 10)
@ -5526,45 +5530,45 @@ Node: AqDrive28025
Node: Loading31070 Node: Loading31070
Node: Insert47999 Node: Insert47999
Node: SetInsert58213 Node: SetInsert58213
Node: Manip66790 Node: Manip67033
Node: CmdFind76570 Node: CmdFind76813
Node: Filter93841 Node: Filter94084
Node: Writing98463 Node: Writing98706
Node: SetWrite108594 Node: SetWrite108837
Node: Bootable129300 Node: Bootable129543
Node: Jigdo146667 Node: Jigdo146910
Node: Charset150914 Node: Charset151157
Node: Exception154229 Node: Exception154472
Node: DialogCtl160349 Node: DialogCtl160592
Node: Inquiry162947 Node: Inquiry163190
Node: Navigate170082 Node: Navigate170325
Node: Verify178380 Node: Verify178623
Node: Restore188207 Node: Restore188450
Node: Emulation196780 Node: Emulation197023
Node: Scripting207168 Node: Scripting207411
Node: Frontend214939 Node: Frontend215182
Node: Examples224546 Node: Examples224789
Node: ExDevices225724 Node: ExDevices225967
Node: ExCreate226390 Node: ExCreate226633
Node: ExDialog227675 Node: ExDialog227918
Node: ExGrowing228940 Node: ExGrowing229183
Node: ExModifying229745 Node: ExModifying229988
Node: ExBootable230249 Node: ExBootable230492
Node: ExCharset230801 Node: ExCharset231044
Node: ExPseudo231693 Node: ExPseudo231936
Node: ExCdrecord232591 Node: ExCdrecord232834
Node: ExMkisofs232908 Node: ExMkisofs233151
Node: ExGrowisofs234248 Node: ExGrowisofs234491
Node: ExException235383 Node: ExException235626
Node: ExTime235837 Node: ExTime236080
Node: ExIncBackup236296 Node: ExIncBackup236539
Node: ExRestore240276 Node: ExRestore240519
Node: ExRecovery241209 Node: ExRecovery241452
Node: Files241779 Node: Files242022
Node: Seealso243078 Node: Seealso243321
Node: Bugreport243801 Node: Bugreport244044
Node: Legal244382 Node: Legal244625
Node: CommandIdx245393 Node: CommandIdx245636
Node: ConceptIdx262201 Node: ConceptIdx262444
 
End Tag Table End Tag Table

View File

@ -1654,25 +1654,31 @@ handled as one parameter for -not_paths resp. -not_leaf.
@kindex -follow softlinks and mount points @kindex -follow softlinks and mount points
@cindex Insert, links or mount points, -follow @cindex Insert, links or mount points, -follow
Enable or disable resolution of symbolic links and mountpoints under Enable or disable resolution of symbolic links and mountpoints under
disk_paths. This applies to actions -add, -du*x, -ls*x, -findx, disk_paths. This applies to actions -add, -du*x, -ls*x, -findx, -concat,
and to -disk_pattern expansion. and to -disk_pattern expansion.
@* @*
There are two kinds of follow decisison to be made: There are three kinds of follow decisison to be made:
@* @*
"link" is the hop from a symbolic link to its target file object. @strong{link} is the hop from a symbolic link to its target file object for the
purpose of reading. I.e. not for command -concat.
If enabled then symbolic links are handled as their target file objects, If enabled then symbolic links are handled as their target file objects,
else symbolic links are handled as themselves. else symbolic links are handled as themselves.
@* @*
"mount" is the hop from one filesystem to another subordinate filesystem. @strong{mount} is the hop from one filesystem to another subordinate filesystem.
If enabled then mountpoint directories are handled as any other directory, If enabled then mountpoint directories are handled as any other directory,
else mountpoints are handled as empty directories if they are encountered in else mountpoints are handled as empty directories if they are encountered in
directory tree traversals. directory tree traversals.
@* @*
@strong{concat} is the hop from a symbolic link to its target file object for
the purpose of writing. I.e. for command -concat. This is a security risk !
@*
Less general than above occasions: Less general than above occasions:
@* @*
"pattern" is mount and link hopping, but only during -disk_pattern expansion. @strong{pattern} is mount and link hopping, but only during -disk_pattern
expansion.
@* @*
"param" is link hopping for parameter words (after eventual pattern expansion). @strong{param} is link hopping for parameter words (after eventual pattern
expansion).
If enabled then -ls*x will show the link targets rather than the links If enabled then -ls*x will show the link targets rather than the links
themselves. -du*x, -findx, and -add will process the link targets but not themselves. -du*x, -findx, and -add will process the link targets but not
follow links in an eventual directory tree below the targets (unless "link" follow links in an eventual directory tree below the targets (unless "link"
@ -1681,20 +1687,20 @@ is enabled).
Occasions can be combined in a colon separated list. All occasions Occasions can be combined in a colon separated list. All occasions
mentioned in the list will then lead to a positive follow decision. mentioned in the list will then lead to a positive follow decision.
@* @*
"off" prevents any positive follow decision. Use it if no other occasion @strong{off} prevents any positive follow decision. Use it if no other occasion
applies. applies.
@* @*
Shortcuts: Shortcuts:
@* @*
"default" is equivalent to "pattern:mount:limit=100". @strong{default} is equivalent to "pattern:mount:limit=100".
@* @*
"on" always decides positive. Equivalent to "link:mount". @strong{on} always decides positive. Equivalent to "link:mount:concat".
@* @*
@sp 1 @sp 1
Not an occasion but an optional setting is: Not an occasion but an optional setting is:
@* @*
"limit="<number> which sets the maximum number of link hops. @strong{limit=}<number> which sets the maximum number of link hops.
A link hop consists of a sequence of symbolic links and a final target A link hop consists of a sequence of symbolic links and a final target
of different type. Nevertheless those hops can loop. Example: of different type. Nevertheless those hops can loop. Example:
@* @*

View File

@ -192,6 +192,7 @@ struct XorrisO { /* the global context of xorriso */
int follow_link_limit; int follow_link_limit;
int resolve_link_rec_count; int resolve_link_rec_count;
int resolve_link_rec_limit; int resolve_link_rec_limit;
int do_follow_concat;
int do_follow_mount; int do_follow_mount;
int do_global_uid; int do_global_uid;
uid_t global_uid; uid_t global_uid;

View File

@ -1 +1 @@
#define Xorriso_timestamP "2014.04.21.131802" #define Xorriso_timestamP "2014.04.21.165612"