| Test Execution Status | Statistics |
|---|---|
| Passed | 0.000% (0/1) |
| Failed | 0.000% (0/1) |
| Requires Manual Checking | 0.000% (0/1) |
| Unknown | 100.000% (1/1) |
| All | 100.000% (1/1) |
| Category | Removed Lines | Inserted Lines | Total |
|---|---|---|---|
| Modified lines executed: | 2.857% (1/35) | 1.064% (1/94) | 1.550% (2/129) |
| Modified lines not executed: | 0.000% (0/35) | 3.191% (3/94) | 2.326% (3/129) |
| Source code lines not covered: | 97.143% (34/35) | 95.745% (90/94) | 96.124% (124/129) |
| Execution Name | State |
|---|---|
| Self test | Unknown |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog | ||
| index 5d6eec63..bd8f7ce7 100644 | ||
| --- a/CWRU/CWRU.chlog | ||
| +++ b/CWRU/CWRU.chlog | ||
| @@ -14927,3 +14927,31 @@ config-top.h | ||
| 14927 | - DONT_REPORT_SIGPIPE: define, so non-interactive shells will no | |
| 14928 | longer print termination messages for child processes killed by | |
| 14929 | SIGTERM | |
| 14930 | - | + |
| 14931 | - | + 2/6 |
| 14932 | - | + --- |
| 14933 | - | +lib/readline/text.c |
| 14934 | - | + - rl_insert: don't attempt to optimize typeahead if we are only reading |
| 14935 | - | + a fixed number of characters (rl_num_chars_to_read > 0) |
| 14936 | - | + |
| 14937 | - | +redir.c |
| 14938 | - | + - redir_special_open: if the shell is restricted, return a |
| 14939 | - | + RESTRICTED_REDIRECT error for attempts to open /dev/tcp and /dev/udp |
| 14940 | - | + sockets. Inspired by report from Blake Burkhart <bburky@bburky.com> |
| 14941 | - | + - do_redirection_internal: if redir_open returns RESTRICTED_REDIRECT, |
| 14942 | - | + return that right away (instead of errno) so we can print a better |
| 14943 | - | + error message |
| 14944 | - | + |
| 14945 | - | + 2/11 |
| 14946 | - | + ---- |
| 14947 | - | +jobs.c |
| 14948 | - | + - bgp_resize: fix problems with (pid_t) overflow when calculating new |
| 14949 | - | + size for table when js.c_childmax is near the limit of a pid_t |
| 14950 | - | + (e.g., 2**31 - 1 on a 32-bit system, or 2**63-1 on a system with |
| 14951 | - | + 32-bit pid_t). Fixes hang reported by Natanael Copa |
| 14952 | - | + <ncopa@alpinelinux.org> based on his patch from 12/8. |
| 14953 | - | + - bgp_resize: cap max table size for bgpids at MAX_CHILD_MAX (32768) |
| 14954 | - | + |
| 14955 | - | +include/typemax.h |
| 14956 | - | + - TYPE_MINIMUM, TYPE_MAXIMUM: updated definitions from coreutils-8.29, |
| 14957 | - | + silences some compiler warnings |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/doc/bash.1 b/doc/bash.1 | ||
| index aa77e883..ea00f6bd 100644 | ||
| --- a/doc/bash.1 | ||
| +++ b/doc/bash.1 | ||
| @@ -2133,7 +2133,7 @@ A value of | ||
| 2133 | .I ignoreboth | |
| 2134 | is shorthand for \fIignorespace\fP and \fIignoredups\fP. | |
| 2135 | A value of | |
| 2136 | - No equivalent source code line in the reference code can be identified. | -.IR erasedups |
| 2136 | - | +.I erasedups |
| 2137 | causes all previous lines matching the current line to be removed from | |
| 2138 | the history list before that line is saved. | |
| 2139 | Any value not in the above list is ignored. | |
| @@ -2794,7 +2794,7 @@ lexicographically between \fIx\fP and \fIy\fP, inclusive, | ||
| 2794 | using the default C locale. | |
| 2795 | Note that both \fIx\fP and \fIy\fP must be of the same type. | |
| 2796 | When the increment is supplied, it is used as the difference between | |
| 2797 | - No equivalent source code line in the reference code can be identified. | -each term. The default increment is 1 or -1 as appropriate. |
| 2797 | - | +each term. The default increment is 1 or \-1 as appropriate. |
| 2798 | .PP | |
| 2799 | Brace expansion is performed before any other expansions, | |
| 2800 | and any characters special to other expansions are preserved | |
| @@ -3042,7 +3042,7 @@ one space to avoid being confused with the \fB:-\fP expansion. | ||
| 3042 | If \fIparameter\fP is \fB@\fP, the result is \fIlength\fP positional | |
| 3043 | parameters beginning at \fIoffset\fP. | |
| 3044 | A negative \fIoffset\fP is taken relative to one greater than the greatest | |
| 3045 | - No equivalent source code line in the reference code can be identified. | -positional parameter, so an offset of -1 evaluates to the last positional |
| 3045 | - | +positional parameter, so an offset of \-1 evaluates to the last positional |
| 3046 | parameter. | |
| 3047 | It is an expansion error if \fIlength\fP evaluates to a number less than | |
| 3048 | zero. | |
| @@ -3439,7 +3439,7 @@ are ignored at the beginning and end of the | ||
| 3439 | word, as long as the whitespace character is in the | |
| 3440 | value of | |
| 3441 | .SM | |
| 3442 | - No equivalent source code line in the reference code can be identified. | -.BR IFS |
| 3442 | - | +.B IFS |
| 3443 | (an | |
| 3444 | .SM | |
| 3445 | .B IFS | |
| @@ -4423,7 +4423,7 @@ A shell variable that is null or unset evaluates to 0 when referenced | ||
| 4423 | by name without using the parameter expansion syntax. | |
| 4424 | The value of a variable is evaluated as an arithmetic expression | |
| 4425 | when it is referenced, or when a variable which has been given the | |
| 4426 | - No equivalent source code line in the reference code can be identified. | -\fIinteger\fP attribute using \fBdeclare -i\fP is assigned a value. |
| 4426 | - | +\fIinteger\fP attribute using \fBdeclare \-i\fP is assigned a value. |
| 4427 | A null value evaluates to 0. | |
| 4428 | A shell variable need not have its \fIinteger\fP attribute | |
| 4429 | turned on to be used in an expression. | |
| @@ -5633,13 +5633,13 @@ in emacs mode and to | ||
| 5633 | .B # | |
| 5634 | in vi command mode. | |
| 5635 | .TP | |
| 5636 | - No equivalent source code line in the reference code can be identified. | -.B completion\-display\-width (-1) |
| 5636 | - | +.B completion\-display\-width (\-1) |
| 5637 | The number of screen columns used to display possible matches | |
| 5638 | when performing completion. | |
| 5639 | The value is ignored if it is less than 0 or greater than the terminal | |
| 5640 | screen width. | |
| 5641 | A value of 0 will cause matches to be displayed one per line. | |
| 5642 | - No equivalent source code line in the reference code can be identified. | -The default value is -1. |
| 5642 | - | +The default value is \-1. |
| 5643 | .TP | |
| 5644 | .B completion\-ignore\-case (Off) | |
| 5645 | If set to \fBOn\fP, readline performs filename matching and completion | |
| @@ -6805,7 +6805,7 @@ of the setting of the \fBmark-symlinked\-directories\fP readline variable. | ||
| 6805 | .PP | |
| 6806 | There is some support for dynamically modifying completions. This is | |
| 6807 | most useful when used in combination with a default completion specified | |
| 6808 | - No equivalent source code line in the reference code can be identified. | -with \fBcomplete -D\fP. |
| 6808 | - | +with \fBcomplete \-D\fP. |
| 6809 | It's possible for shell functions executed as completion | |
| 6810 | handlers to indicate that completion should be retried by returning an | |
| 6811 | exit status of 124. If a shell function returns 124, and changes | |
| @@ -6962,7 +6962,7 @@ for information on setting and unsetting shell options. | ||
| 6962 | .PP | |
| 6963 | The shell supports a history expansion feature that | |
| 6964 | is similar to the history expansion in | |
| 6965 | - No equivalent source code line in the reference code can be identified. | -.BR csh. |
| 6965 | - | +.BR csh . |
| 6966 | This section describes what syntax features are available. This | |
| 6967 | feature is enabled by default for interactive shells, and can be | |
| 6968 | disabled using the | |
| @@ -8289,7 +8289,7 @@ with that string) or as a number (an index into the history list, | ||
| 8289 | where a negative number is used as an offset from the current | |
| 8290 | command number). If | |
| 8291 | .I last | |
| 8292 | - No equivalent source code line in the reference code can be identified. | -is not specified it is set to |
| 8292 | - | +is not specified, it is set to |
| 8293 | the current command for listing (so that | |
| 8294 | .if n ``fc \-l \-10'' | |
| 8295 | .if t \f(CWfc \-l \-10\fP | |
| @@ -8298,7 +8298,7 @@ prints the last 10 commands) and to | ||
| 8298 | otherwise. | |
| 8299 | If | |
| 8300 | .I first | |
| 8301 | - No equivalent source code line in the reference code can be identified. | -is not specified it is set to the previous |
| 8301 | - | +is not specified, it is set to the previous |
| 8302 | command for editing and \-16 for listing. | |
| 8303 | .sp 1 | |
| 8304 | The | |
| @@ -8802,7 +8802,7 @@ Exit a login shell. | ||
| 8802 | Read lines from the standard input into the indexed array variable | |
| 8803 | .IR array , | |
| 8804 | or from file descriptor | |
| 8805 | - No equivalent source code line in the reference code can be identified. | -.IR fd |
| 8805 | - | +.I fd |
| 8806 | if the | |
| 8807 | .B \-u | |
| 8808 | option is supplied. | |
| @@ -8951,9 +8951,9 @@ causes \fBprintf\fP to output the date-time string resulting from using | ||
| 8951 | \fIdatefmt\fP as a format string for \fIstrftime\fP(3). | |
| 8952 | The corresponding \fIargument\fP is an integer representing the number of | |
| 8953 | seconds since the epoch. | |
| 8954 | - No equivalent source code line in the reference code can be identified. | -Two special argument values may be used: -1 represents the current |
| 8955 | - No equivalent source code line in the reference code can be identified. | -time, and -2 represents the time the shell was invoked. |
| 8956 | - No equivalent source code line in the reference code can be identified. | -If no argument is specified, conversion behaves as if -1 had been given. |
| 8954 | - | +Two special argument values may be used: \-1 represents the current |
| 8955 | - | +time, and \-2 represents the time the shell was invoked. |
| 8956 | - | +If no argument is specified, conversion behaves as if \-1 had been given. |
| 8957 | This is an exception to the usual \fBprintf\fP behavior. | |
| 8958 | .PD | |
| 8959 | .PP |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/eval.c b/eval.c | ||
| index 7992346a..3104bffe 100644 | ||
| --- a/eval.c | ||
| +++ b/eval.c | ||
| @@ -261,6 +261,15 @@ send_pwd_to_eterm () | ||
| 261 | free (f); | |
| 262 | } | |
| 263 | ||
| 264 | - | +static void |
| 265 | - | +execute_prompt_command () |
| 266 | - | +{ |
| 267 | - | + char *command_to_execute; |
| 268 | - | + |
| 269 | - | + command_to_execute = get_string_value ("PROMPT_COMMAND"); |
| 270 | - | + if (command_to_execute) |
| 271 | - | + execute_variable_command (command_to_execute, "PROMPT_COMMAND"); |
| 272 | - | +} |
| 264 ➡ 273 | /* Call the YACC-generated parser and return the status of the parse. | |
| 265 ➡ 274 | Input is read from the current input stream (bash_input). yyparse | |
| 266 ➡ 275 | leaves the parsed command in the global variable GLOBAL_COMMAND. | |
| @@ -269,7 +278,6 @@ int | ||
| 269 ➡ 278 | parse_command () | |
| 270 ➡ 279 | { | |
| 271 ➡ 280 | int r; | |
| 272 | - No equivalent source code line in the reference code can be identified. | - char *command_to_execute; |
| 273 ➡ 281 | ||
| 274 ➡ 282 | need_here_doc = 0; | |
| 275 ➡ 283 | run_pending_traps (); | |
| @@ -282,9 +290,7 @@ parse_command () | ||
| 282 ➡ 290 | actually printed. */ | |
| 283 ➡ 291 | if (interactive && bash_input.type != st_string && parser_expanding_alias() == 0) | |
| 284 ➡ 292 | { | |
| 285 | - No equivalent source code line in the reference code can be identified. | - command_to_execute = get_string_value ("PROMPT_COMMAND"); |
| 286 | - No equivalent source code line in the reference code can be identified. | - if (command_to_execute) |
| 287 | - No equivalent source code line in the reference code can be identified. | - execute_variable_command (command_to_execute, "PROMPT_COMMAND"); |
| 293 | - | + execute_prompt_command (); |
| 288 ➡ 294 | ||
| 289 ➡ 295 | if (running_under_emacs == 2) | |
| 290 ➡ 296 | send_pwd_to_eterm (); /* Yuck */ |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/include/typemax.h b/include/typemax.h | ||
| index aa21c9c6..0f696388 100644 | ||
| --- a/include/typemax.h | ||
| +++ b/include/typemax.h | ||
| @@ -35,14 +35,23 @@ | ||
| 35 | # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) | |
| 36 | #endif | |
| 37 | ||
| 38 | - | +#ifndef TYPE_SIGNED_MAGNITUDE |
| 39 | - | +# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) |
| 40 | - | +#endif |
| 41 | - | + |
| 42 | - | +#ifndef TYPE_WIDTH |
| 43 | - | +# define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) |
| 44 | - | +#endif |
| 45 | - | + |
| 38 ➡ 46 | #ifndef TYPE_MINIMUM | |
| 39 | - No equivalent source code line in the reference code can be identified. | -# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ |
| 40 | - No equivalent source code line in the reference code can be identified. | - ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ |
| 41 | - No equivalent source code line in the reference code can be identified. | - : (t) 0)) |
| 47 | - | +# define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) |
| 42 ➡ 48 | #endif | |
| 43 ➡ 49 | ||
| 44 ➡ 50 | #ifndef TYPE_MAXIMUM | |
| 45 | - No equivalent source code line in the reference code can be identified. | -# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) |
| 51 | - | +# define TYPE_MAXIMUM(t) \ |
| 52 | - | + ((t) (! TYPE_SIGNED (t) \ |
| 53 | - | + ? (t) -1 \ |
| 54 | - | + : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) |
| 46 ➡ 55 | #endif | |
| 47 ➡ 56 | ||
| 48 ➡ 57 | #ifdef HAVE_LONG_LONG |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/jobs.c b/jobs.c | ||
| index eff3fefa..8e51fa9b 100644 | ||
| --- a/jobs.c | ||
| +++ b/jobs.c | ||
| @@ -73,6 +73,8 @@ | ||
| 73 | #include "execute_cmd.h" | |
| 74 | #include "flags.h" | |
| 75 | ||
| 76 | - | +#include "typemax.h" |
| 77 | - | + |
| 76 ➡ 78 | #include "builtins/builtext.h" | |
| 77 ➡ 79 | #include "builtins/common.h" | |
| 78 ➡ 80 | ||
| @@ -93,7 +95,7 @@ extern int killpg __P((pid_t, int)); | ||
| 93 ➡ 95 | #endif | |
| 94 ➡ 96 | ||
| 95 ➡ 97 | #if !MAX_CHILD_MAX | |
| 96 | - No equivalent source code line in the reference code can be identified. | -# define MAX_CHILD_MAX 8192 |
| 98 | - | +# define MAX_CHILD_MAX 32768 |
| 97 ➡ 99 | #endif | |
| 98 ➡ 100 | ||
| 99 ➡ 101 | #if !defined (DEBUG) | |
| @@ -734,7 +736,7 @@ stop_pipeline (async, deferred) | ||
| 734 ➡ 736 | static void | |
| 735 ➡ 737 | bgp_resize () | |
| 736 ➡ 738 | { | |
| 737 | - No equivalent source code line in the reference code can be identified. | - ps_index_t nsize; |
| 739 | - | + ps_index_t nsize, nsize_cur, nsize_max; |
| 738 ➡ 740 | ps_index_t psi; | |
| 739 ➡ 741 | ||
| 740 ➡ 742 | if (bgpids.nalloc == 0) | |
| @@ -748,10 +750,19 @@ bgp_resize () | ||
| 748 ➡ 750 | else | |
| 749 ➡ 751 | nsize = bgpids.nalloc; | |
| 750 ➡ 752 | ||
| 751 | - No equivalent source code line in the reference code can be identified. | - while (nsize < (ps_index_t)js.c_childmax) |
| 752 | - No equivalent source code line in the reference code can be identified. | - nsize *= 2; |
| 753 | - | + nsize_max = TYPE_MAXIMUM (ps_index_t); |
| 754 | - | + nsize_cur = (ps_index_t)js.c_childmax; |
| 755 | - | + if (nsize_cur < 0) /* overflow */ |
| 756 | - | + nsize_cur = MAX_CHILD_MAX; |
| 757 | - | + |
| 758 | - | + while (nsize > 0 && nsize < nsize_cur) /* > 0 should catch overflow */ |
| 759 | - | + nsize <<= 1; |
| 760 | - | + if (nsize > nsize_max || nsize <= 0) /* overflow? */ |
| 761 | - | + nsize = nsize_max; |
| 762 | - | + if (nsize > MAX_CHILD_MAX) |
| 763 | - | + nsize = nsize_max = MAX_CHILD_MAX; /* hard cap */ |
| 753 ➡ 764 | ||
| 754 | - No equivalent source code line in the reference code can be identified. | - if (bgpids.nalloc < js.c_childmax) |
| 765 | - | + if (bgpids.nalloc < nsize_cur && bgpids.nalloc < nsize_max) |
| 755 ➡ 766 | { | |
| 756 ➡ 767 | bgpids.storage = (struct pidstat *)xrealloc (bgpids.storage, nsize * sizeof (struct pidstat)); | |
| 757 ➡ 768 | ||
| @@ -768,7 +779,7 @@ bgp_resize () | ||
| 768 ➡ 779 | static ps_index_t | |
| 769 ➡ 780 | bgp_getindex () | |
| 770 ➡ 781 | { | |
| 771 | - No equivalent source code line in the reference code can be identified. | - if (bgpids.nalloc < js.c_childmax || bgpids.head >= bgpids.nalloc) |
| 782 | - | + if (bgpids.nalloc < (ps_index_t)js.c_childmax || bgpids.head >= bgpids.nalloc) |
| 772 ➡ 783 | bgp_resize (); | |
| 773 ➡ 784 | ||
| 774 ➡ 785 | pshash_delindex (bgpids.head); /* XXX - clear before reusing */ |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/lib/readline/doc/hsuser.texi b/lib/readline/doc/hsuser.texi | ||
| index 1c25f813..d21f65d0 100644 | ||
| --- a/lib/readline/doc/hsuser.texi | ||
| +++ b/lib/readline/doc/hsuser.texi | ||
| @@ -149,8 +149,8 @@ Both @var{first} and | ||
| 149 | @var{last} may be specified as a string (to locate the most recent | |
| 150 | command beginning with that string) or as a number (an index into the | |
| 151 | history list, where a negative number is used as an offset from the | |
| 152 | - No equivalent source code line in the reference code can be identified. | -current command number). If @var{last} is not specified it is set to |
| 153 | - No equivalent source code line in the reference code can be identified. | -@var{first}. If @var{first} is not specified it is set to the previous |
| 152 | - | +current command number). If @var{last} is not specified, it is set to |
| 153 | - | +@var{first}. If @var{first} is not specified, it is set to the previous |
| 154 | command for editing and @minus{}16 for listing. If the @option{-l} flag is | |
| 155 | given, the commands are listed on standard output. The @option{-n} flag | |
| 156 | suppresses the command numbers when listing. The @option{-r} flag |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/lib/readline/doc/readline.3 b/lib/readline/doc/readline.3 | ||
| index 5b555dcf..c084c658 100644 | ||
| --- a/lib/readline/doc/readline.3 | ||
| +++ b/lib/readline/doc/readline.3 | ||
| @@ -378,13 +378,13 @@ in emacs mode and to | ||
| 378 | .B # | |
| 379 | in vi command mode. | |
| 380 | .TP | |
| 381 | - No equivalent source code line in the reference code can be identified. | -.B completion\-display\-width (-1) |
| 381 | - | +.B completion\-display\-width (\-1) |
| 382 | The number of screen columns used to display possible matches | |
| 383 | when performing completion. | |
| 384 | The value is ignored if it is less than 0 or greater than the terminal | |
| 385 | screen width. | |
| 386 | A value of 0 will cause matches to be displayed one per line. | |
| 387 | - No equivalent source code line in the reference code can be identified. | -The default value is -1. |
| 387 | - | +The default value is \-1. |
| 388 | .TP | |
| 389 | .B completion\-ignore\-case (Off) | |
| 390 | If set to \fBOn\fP, readline performs filename matching and completion |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/lib/readline/readline.c b/lib/readline/readline.c | ||
| index 64154c54..4842a02e 100644 | ||
| --- a/lib/readline/readline.c | ||
| +++ b/lib/readline/readline.c | ||
| @@ -242,7 +242,7 @@ int rl_erase_empty_line = 0; | ||
| 242 | ||
| 243 | /* Non-zero means to read only this many characters rather than up to a | |
| 244 | character bound to accept-line. */ | |
| 245 | - No equivalent source code line in the reference code can be identified. | -int rl_num_chars_to_read; |
| 245 | - | +int rl_num_chars_to_read = 0; |
| 246 | ||
| 247 | /* Line buffer and maintenance. */ | |
| 248 | char *rl_line_buffer = (char *)NULL; |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/lib/readline/text.c b/lib/readline/text.c | ||
| index 116a33b6..81de2a99 100644 | ||
| --- a/lib/readline/text.c | ||
| +++ b/lib/readline/text.c | ||
| @@ -915,6 +915,7 @@ rl_insert (int count, int c) | ||
| 915 | x = 0; | |
| 916 | n = (unsigned short)-2; | |
| 917 | while (_rl_optimize_typeahead && | |
| 918 | 0 | + rl_num_chars_to_read == 0 && |
| 918 ➡ 919 | (RL_ISSTATE (RL_STATE_INPUTPENDING|RL_STATE_MACROINPUT) == 0) && | |
| 919 ➡ 920 | _rl_pushed_input_available () == 0 && | |
| 920 ➡ 921 | _rl_input_queued (0) && |
| Line | Tests | Difference Output |
|---|---|---|
| diff --git a/redir.c b/redir.c | ||
| index 7104a3a7..ebb2c635 100644 | ||
| --- a/redir.c | ||
| +++ b/redir.c | ||
| @@ -578,6 +578,10 @@ redir_special_open (spec, filename, flags, mode, ri) | ||
| 578 | #if defined (NETWORK_REDIRECTIONS) | |
| 579 | case RF_DEVTCP: | |
| 580 | case RF_DEVUDP: | |
| 581 | - | +#if defined (RESTRICTED_SHELL) |
| 582 | 0 | + if (restricted) |
| 583 | 0 | + return (RESTRICTED_REDIRECT); |
| 584 | - | +#endif |
| 581 ➡ 585 | #if defined (HAVE_NETWORK) | |
| 582 ➡ 586 | fd = netopen (filename); | |
| 583 ➡ 587 | #else | |
| @@ -850,7 +854,7 @@ do_redirection_internal (redirect, flags) | ||
| 850 ➡ 854 | fd = redir_open (redirectee_word, redirect->flags, 0666, ri); | |
| 851 ➡ 855 | free (redirectee_word); | |
| 852 ➡ 856 | ||
| 853 | 1 Executed by:
| - if (fd == NOCLOBBER_REDIRECT) |
| 857 | 1 Executed by:
| + if (fd == NOCLOBBER_REDIRECT || fd == RESTRICTED_REDIRECT) |
| 854 ➡ 858 | return (fd); | |
| 855 ➡ 859 | ||
| 856 ➡ 860 | if (fd < 0) |