Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/freopen-safer.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | static | - | ||||||||||||
5 | _Bool | - | ||||||||||||
6 | - | |||||||||||||
7 | protect_fd (int fd) | - | ||||||||||||
8 | { | - | ||||||||||||
9 | int value = open ("/dev/null", | - | ||||||||||||
10 | 00 | - | ||||||||||||
11 | ); | - | ||||||||||||
12 | if (value != fd
| 0 | ||||||||||||
13 | { | - | ||||||||||||
14 | if (0 <= value
| 0 | ||||||||||||
15 | { | - | ||||||||||||
16 | close (value); | - | ||||||||||||
17 | - | |||||||||||||
18 | (*__errno_location ()) | - | ||||||||||||
19 | = | - | ||||||||||||
20 | 9 | - | ||||||||||||
21 | ; | - | ||||||||||||
22 | } never executed: end of block | 0 | ||||||||||||
23 | return never executed: return 0 ; never executed: return 0 ; | 0 | ||||||||||||
24 | 0 never executed: return 0 ; | 0 | ||||||||||||
25 | ; never executed: return 0 ; | 0 | ||||||||||||
26 | } | - | ||||||||||||
27 | return never executed: return 1 ; never executed: return 1 ; | 0 | ||||||||||||
28 | 1 never executed: return 1 ; | 0 | ||||||||||||
29 | ; never executed: return 1 ; | 0 | ||||||||||||
30 | } | - | ||||||||||||
31 | - | |||||||||||||
32 | - | |||||||||||||
33 | - | |||||||||||||
34 | - | |||||||||||||
35 | - | |||||||||||||
36 | - | |||||||||||||
37 | - | |||||||||||||
38 | FILE * | - | ||||||||||||
39 | freopen_safer (char const *name, char const *mode, FILE *f) | - | ||||||||||||
40 | { | - | ||||||||||||
41 | - | |||||||||||||
42 | - | |||||||||||||
43 | - | |||||||||||||
44 | - | |||||||||||||
45 | - | |||||||||||||
46 | - | |||||||||||||
47 | - | |||||||||||||
48 | _Bool | - | ||||||||||||
49 | protect_in = | - | ||||||||||||
50 | 0 | - | ||||||||||||
51 | ; | - | ||||||||||||
52 | - | |||||||||||||
53 | _Bool | - | ||||||||||||
54 | protect_out = | - | ||||||||||||
55 | 0 | - | ||||||||||||
56 | ; | - | ||||||||||||
57 | - | |||||||||||||
58 | _Bool | - | ||||||||||||
59 | protect_err = | - | ||||||||||||
60 | 0 | - | ||||||||||||
61 | ; | - | ||||||||||||
62 | int saved_errno; | - | ||||||||||||
63 | - | |||||||||||||
64 | switch (fileno (f)) | - | ||||||||||||
65 | { | - | ||||||||||||
66 | default never executed: :default: never executed: default: | 0 | ||||||||||||
67 | if (dup2 (
| 0 | ||||||||||||
68 | 2
| 0 | ||||||||||||
69 | ,
| 0 | ||||||||||||
70 | 2
| 0 | ||||||||||||
71 | ) !=
| 0 | ||||||||||||
72 | 2
| 0 | ||||||||||||
73 | ) | - | ||||||||||||
74 | protect_err = never executed: protect_err = 1 ; | 0 | ||||||||||||
75 | 1 never executed: protect_err = 1 ; | 0 | ||||||||||||
76 | ; never executed: protect_err = 1 ; | 0 | ||||||||||||
77 | ((void) 0); | - | ||||||||||||
78 | case never executed: case 2 : never executed: case 2 : code before this statement never executed: case 2 : | 0 | ||||||||||||
79 | 2 never executed: case 2 : code before this statement never executed: case 2 : | 0 | ||||||||||||
80 | : never executed: case 2 : code before this statement never executed: case 2 : | 0 | ||||||||||||
81 | if (dup2 (
| 0 | ||||||||||||
82 | 1
| 0 | ||||||||||||
83 | ,
| 0 | ||||||||||||
84 | 1
| 0 | ||||||||||||
85 | ) !=
| 0 | ||||||||||||
86 | 1
| 0 | ||||||||||||
87 | ) | - | ||||||||||||
88 | protect_out = never executed: protect_out = 1 ; | 0 | ||||||||||||
89 | 1 never executed: protect_out = 1 ; | 0 | ||||||||||||
90 | ; never executed: protect_out = 1 ; | 0 | ||||||||||||
91 | ((void) 0); | - | ||||||||||||
92 | case never executed: case 1 : never executed: case 1 : code before this statement never executed: case 1 : | 0 | ||||||||||||
93 | 1 never executed: case 1 : code before this statement never executed: case 1 : | 0 | ||||||||||||
94 | : never executed: case 1 : code before this statement never executed: case 1 : | 0 | ||||||||||||
95 | if (dup2 (
| 0 | ||||||||||||
96 | 0
| 0 | ||||||||||||
97 | ,
| 0 | ||||||||||||
98 | 0
| 0 | ||||||||||||
99 | ) !=
| 0 | ||||||||||||
100 | 0
| 0 | ||||||||||||
101 | ) | - | ||||||||||||
102 | protect_in = never executed: protect_in = 1 ; | 0 | ||||||||||||
103 | 1 never executed: protect_in = 1 ; | 0 | ||||||||||||
104 | ; never executed: protect_in = 1 ; | 0 | ||||||||||||
105 | ((void) 0); | - | ||||||||||||
106 | case executed 181 times by 5 tests: case 0 : Executed by:
code before this statement never executed: case 0 : executed 181 times by 5 tests: case 0 : Executed by:
code before this statement never executed: case 0 : executed 181 times by 5 tests: case 0 : Executed by:
| 0-181 | ||||||||||||
107 | 0 executed 181 times by 5 tests: case 0 : Executed by:
code before this statement never executed: case 0 : | 0-181 | ||||||||||||
108 | : executed 181 times by 5 tests: case 0 : Executed by:
code before this statement never executed: case 0 : | 0-181 | ||||||||||||
109 | - | |||||||||||||
110 | break; executed 181 times by 5 tests: break; Executed by:
| 181 | ||||||||||||
111 | } | - | ||||||||||||
112 | if (protect_in
| 0-181 | ||||||||||||
113 | 0
| 0 | ||||||||||||
114 | )
| 0 | ||||||||||||
115 | f = never executed: f = ((void *)0) ; | 0 | ||||||||||||
116 | ((void *)0) never executed: f = ((void *)0) ; | 0 | ||||||||||||
117 | ; never executed: f = ((void *)0) ; | 0 | ||||||||||||
118 | else if (protect_out
| 0-181 | ||||||||||||
119 | 1
| 0 | ||||||||||||
120 | )
| 0 | ||||||||||||
121 | f = never executed: f = ((void *)0) ; | 0 | ||||||||||||
122 | ((void *)0) never executed: f = ((void *)0) ; | 0 | ||||||||||||
123 | ; never executed: f = ((void *)0) ; | 0 | ||||||||||||
124 | else if (protect_err
| 0-181 | ||||||||||||
125 | 2
| 0 | ||||||||||||
126 | )
| 0 | ||||||||||||
127 | f = never executed: f = ((void *)0) ; | 0 | ||||||||||||
128 | ((void *)0) never executed: f = ((void *)0) ; | 0 | ||||||||||||
129 | ; never executed: f = ((void *)0) ; | 0 | ||||||||||||
130 | else | - | ||||||||||||
131 | f = executed 181 times by 5 tests: f = rpl_freopen (name, mode, f); Executed by:
| 181 | ||||||||||||
132 | rpl_freopen executed 181 times by 5 tests: f = rpl_freopen (name, mode, f); Executed by:
| 181 | ||||||||||||
133 | (name, mode, f); executed 181 times by 5 tests: f = rpl_freopen (name, mode, f); Executed by:
| 181 | ||||||||||||
134 | saved_errno = | - | ||||||||||||
135 | (*__errno_location ()) | - | ||||||||||||
136 | ; | - | ||||||||||||
137 | if (protect_err
| 0-181 | ||||||||||||
138 | close ( never executed: close ( 2 ); | 0 | ||||||||||||
139 | 2 never executed: close ( 2 ); | 0 | ||||||||||||
140 | ); never executed: close ( 2 ); | 0 | ||||||||||||
141 | if (protect_out
| 0-181 | ||||||||||||
142 | close ( never executed: close ( 1 ); | 0 | ||||||||||||
143 | 1 never executed: close ( 1 ); | 0 | ||||||||||||
144 | ); never executed: close ( 1 ); | 0 | ||||||||||||
145 | if (protect_in
| 0-181 | ||||||||||||
146 | close ( never executed: close ( 0 ); | 0 | ||||||||||||
147 | 0 never executed: close ( 0 ); | 0 | ||||||||||||
148 | ); never executed: close ( 0 ); | 0 | ||||||||||||
149 | if (!f
| 2-179 | ||||||||||||
150 | - | |||||||||||||
151 | (* executed 2 times by 2 tests: __errno_location ()) (*__errno_location ()) = saved_errno; Executed by:
executed 2 times by 2 tests: (*__errno_location ()) = saved_errno; Executed by:
| 2 | ||||||||||||
152 | = saved_errno; executed 2 times by 2 tests: (*__errno_location ()) = saved_errno; Executed by:
| 2 | ||||||||||||
153 | return executed 181 times by 5 tests: f;return f; Executed by:
executed 181 times by 5 tests: return f; Executed by:
| 181 | ||||||||||||
154 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |