OpenCoverage

canonicalize.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/canonicalize.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4static -
5 _Bool-
6-
7seen_triple (Hash_table **ht, char const *filename, struct stat const *st)-
8{-
9 if (*
*ht == ((void *)0)Description
TRUEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 45 times by 2 tests
Evaluated by:
  • ln
  • readlink
ht ==
*ht == ((void *)0)Description
TRUEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 45 times by 2 tests
Evaluated by:
  • ln
  • readlink
45-130
10 ((void *)0)
*ht == ((void *)0)Description
TRUEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 45 times by 2 tests
Evaluated by:
  • ln
  • readlink
45-130
11 )-
12 {-
13 size_t initial_capacity = 7;-
14 *ht = hash_initialize (initial_capacity,-
15 -
16 ((void *)0)-
17 ,-
18 triple_hash,-
19 triple_compare_ino_str,-
20 triple_free);-
21 if (*
*ht == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
ht ==
*ht == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
0-130
22 ((void *)0)
*ht == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
0-130
23 )-
24 xalloc_die ();
never executed: xalloc_die ();
0
25 }
executed 130 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
130
26-
27 if (seen_file (*ht, filename, st)
seen_file (*ht, filename, st)Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 165 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
10-165
28 return
executed 10 times by 1 test: return 1 ;
Executed by:
  • readlink
executed 10 times by 1 test: return 1 ;
Executed by:
  • readlink
10
29 1
executed 10 times by 1 test: return 1 ;
Executed by:
  • readlink
10
30 ;
executed 10 times by 1 test: return 1 ;
Executed by:
  • readlink
10
31-
32 record_file (*ht, filename, st);-
33 return
executed 165 times by 3 tests: return 0 ;
Executed by:
  • ln
  • readlink
  • realpath
executed 165 times by 3 tests: return 0 ;
Executed by:
  • ln
  • readlink
  • realpath
165
34 0
executed 165 times by 3 tests: return 0 ;
Executed by:
  • ln
  • readlink
  • realpath
165
35 ;
executed 165 times by 3 tests: return 0 ;
Executed by:
  • ln
  • readlink
  • realpath
165
36}-
37char *-
38canonicalize_filename_mode (const char *name, canonicalize_mode_t can_mode)-
39{-
40 char *rname, *dest, *extra_buf = -
41 ((void *)0)-
42 ;-
43 char const *start;-
44 char const *end;-
45 char const *rname_limit;-
46 size_t extra_len = 0;-
47 Hash_table *ht = -
48 ((void *)0)-
49 ;-
50 int saved_errno;-
51 int can_flags = can_mode & ~(CAN_EXISTING | CAN_ALL_BUT_LAST | CAN_MISSING);-
52 -
53 _Bool -
54 logical = can_flags & CAN_NOLINKS;-
55 size_t prefix_len;-
56-
57 can_mode &= (CAN_EXISTING | CAN_ALL_BUT_LAST | CAN_MISSING);-
58-
59 if ((((
(((can_mode) &...e) - 1)) != 0)Description
TRUEnever evaluated
FALSEevaluated 273 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
can_mode) & ((can_mode) - 1)) != 0)
(((can_mode) &...e) - 1)) != 0)Description
TRUEnever evaluated
FALSEevaluated 273 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
0-273
60 {-
61 -
62 (*__errno_location ()) -
63 = -
64 22-
65 ;-
66 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
67 ((void *)0)
never executed: return ((void *)0) ;
0
68 ;
never executed: return ((void *)0) ;
0
69 }-
70-
71 if (name ==
name == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 273 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
0-273
72 ((void *)0)
name == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 273 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
0-273
73 )-
74 {-
75 -
76 (*__errno_location ()) -
77 = -
78 22-
79 ;-
80 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
81 ((void *)0)
never executed: return ((void *)0) ;
0
82 ;
never executed: return ((void *)0) ;
0
83 }-
84-
85 if (name[0] == '\0'
name[0] == '\0'Description
TRUEevaluated 3 times by 2 tests
Evaluated by:
  • ln
  • realpath
FALSEevaluated 270 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
3-270
86 {-
87 -
88 (*__errno_location ()) -
89 = -
90 2-
91 ;-
92 return
executed 3 times by 2 tests: return ((void *)0) ;
Executed by:
  • ln
  • realpath
executed 3 times by 2 tests: return ((void *)0) ;
Executed by:
  • ln
  • realpath
3
93 ((void *)0)
executed 3 times by 2 tests: return ((void *)0) ;
Executed by:
  • ln
  • realpath
3
94 ;
executed 3 times by 2 tests: return ((void *)0) ;
Executed by:
  • ln
  • realpath
3
95 }-
96-
97-
98-
99 prefix_len = 0;-
100-
101 if (!((((
(((name)[0]) == '/')Description
TRUEevaluated 135 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 135 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
name)[0]) == '/')
(((name)[0]) == '/')Description
TRUEevaluated 135 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 135 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
|| 0 != 0
0 != 0Description
TRUEnever evaluated
FALSEevaluated 135 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
))
0-135
102 {-
103 rname = xgetcwd ();-
104 if (!rname
!rnameDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
3-132
105 return
executed 3 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
executed 3 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
3
106 ((void *)0)
executed 3 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
3
107 ;
executed 3 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
3
108 dest = -
109 (__extension__ (__builtin_constant_p (
__builtin_constant_p ( '\0' )Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
110 '\0'
__builtin_constant_p ( '\0' )Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
111 )
__builtin_constant_p ( '\0' )Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
&& !__builtin_constant_p (
!__builtin_con...nt_p ( rname )Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
112 rname
!__builtin_con...nt_p ( rname )Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
113 )
!__builtin_con...nt_p ( rname )Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
&& (
( '\0' ) == '\0'Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
114 '\0'
( '\0' ) == '\0'Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
115 ) == '\0'
( '\0' ) == '\0'Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
? (char *) __rawmemchr (
0-132
116 rname-
117 , -
118 '\0'-
119 ) : __builtin_strchr (-
120 rname-
121 , -
122 '\0'-
123 )))-
124 ;-
125 if (dest - rname <
dest - rname < 4096Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
126 4096
dest - rname < 4096Description
TRUEevaluated 132 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
0-132
127 )-
128 {-
129 char *p = xrealloc (rname, -
130 4096-
131 );-
132 dest = p + (dest - rname);-
133 rname = p;-
134 rname_limit = rname + -
135 4096-
136 ;-
137 }
executed 132 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
132
138 else-
139 {-
140 rname_limit = dest;-
141 }
never executed: end of block
0
142 start = name;-
143 prefix_len = 0;-
144 }
executed 132 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
132
145 else-
146 {-
147 rname = xmalloc (-
148 4096-
149 );-
150 rname_limit = rname + -
151 4096-
152 ;-
153 dest = rname;-
154 if (prefix_len
prefix_lenDescription
TRUEnever evaluated
FALSEevaluated 135 times by 2 tests
Evaluated by:
  • readlink
  • realpath
)
0-135
155 {-
156 memcpy (rname, name, prefix_len);-
157 dest += prefix_len;-
158 }
never executed: end of block
0
159 *dest++ = '/';-
160 if (0)-
161 {
dead code: { if (((name[1]) == '/') && !((name[2]) == '/') && !prefix_len) *dest++ = '/'; *dest = '\0'; }
-
162 if (((name[1]) == '/') && !((name[2]) == '/') && !prefix_len)
dead code: { if (((name[1]) == '/') && !((name[2]) == '/') && !prefix_len) *dest++ = '/'; *dest = '\0'; }
-
163 *dest++ = '/';
dead code: { if (((name[1]) == '/') && !((name[2]) == '/') && !prefix_len) *dest++ = '/'; *dest = '\0'; }
-
164 *dest = '\0';
dead code: { if (((name[1]) == '/') && !((name[2]) == '/') && !prefix_len) *dest++ = '/'; *dest = '\0'; }
-
165 }
dead code: { if (((name[1]) == '/') && !((name[2]) == '/') && !prefix_len) *dest++ = '/'; *dest = '\0'; }
-
166 start = name + prefix_len;-
167 }
executed 135 times by 2 tests: end of block
Executed by:
  • readlink
  • realpath
135
168-
169 for ( ; *
*startDescription
TRUEevaluated 1351 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 124 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
start
*startDescription
TRUEevaluated 1351 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 124 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
; start = end)
124-1351
170 {-
171-
172 while (((*
((*start) == '/')Description
TRUEevaluated 1121 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1351 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
start) == '/')
((*start) == '/')Description
TRUEevaluated 1121 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1351 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
1121-1351
173 ++
executed 1121 times by 3 tests: ++start;
Executed by:
  • ln
  • readlink
  • realpath
start;
executed 1121 times by 3 tests: ++start;
Executed by:
  • ln
  • readlink
  • realpath
1121
174-
175-
176 for (end = start; *
*endDescription
TRUEevaluated 9435 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 271 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
end
*endDescription
TRUEevaluated 9435 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 271 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
&& !((*end) == '/')
!((*end) == '/')Description
TRUEevaluated 8355 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1080 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
; ++end)
271-9435
177 ;
executed 8355 times by 3 tests: ;
Executed by:
  • ln
  • readlink
  • realpath
8355
178-
179 if (end - start == 0
end - start == 0Description
TRUEevaluated 81 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 1270 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
81-1270
180 break;
executed 81 times by 2 tests: break;
Executed by:
  • readlink
  • realpath
81
181 else if (end - start == 1
end - start == 1Description
TRUEevaluated 234 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1036 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
&& start[0] == '.'
start[0] == '.'Description
TRUEevaluated 94 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 140 times by 2 tests
Evaluated by:
  • readlink
  • realpath
)
94-1036
182 ;
executed 94 times by 3 tests: ;
Executed by:
  • ln
  • readlink
  • realpath
94
183 else if (end - start == 2
end - start == 2Description
TRUEevaluated 22 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1154 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
&& start[0] == '.'
start[0] == '.'Description
TRUEevaluated 22 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
&& start[1] == '.'
start[1] == '.'Description
TRUEevaluated 22 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
)
0-1154
184 {-
185-
186 if (dest > rname + prefix_len + 1
dest > rname + prefix_len + 1Description
TRUEevaluated 13 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 9 times by 1 test
Evaluated by:
  • readlink
)
9-13
187 for (--dest; dest > rname
dest > rnameDescription
TRUEevaluated 33 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
&& !((dest[-1]) == '/')
!((dest[-1]) == '/')Description
TRUEevaluated 20 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 13 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
; --dest)
0-33
188 continue;
executed 20 times by 3 tests: continue;
Executed by:
  • ln
  • readlink
  • realpath
20
189 if (0 && dest == rname + 1
dead code: dest == rname + 1
-
190 && !prefix_len
dead code: !prefix_len
&& ((*
dead code: ((*dest) == '/')
dest) == '/')
dead code: ((*dest) == '/')
&& !((dest[1]) == '/')
dead code: !((dest[1]) == '/')
)
-
191 dest++;
dead code: dest++;
-
192 }
executed 22 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
22
193 else-
194 {-
195 struct stat st;-
196-
197 if (!((dest[-1]) == '/')
!((dest[-1]) == '/')Description
TRUEevaluated 889 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 265 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
265-889
198 *
executed 889 times by 3 tests: *dest++ = '/';
Executed by:
  • ln
  • readlink
  • realpath
dest++ = '/';
executed 889 times by 3 tests: *dest++ = '/';
Executed by:
  • ln
  • readlink
  • realpath
889
199-
200 if (dest + (end - start) >= rname_limit
dest + (end - ...>= rname_limitDescription
TRUEnever evaluated
FALSEevaluated 1154 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
0-1154
201 {-
202 ptrdiff_t dest_offset = dest - rname;-
203 size_t new_size = rname_limit - rname;-
204-
205 if (end - start + 1 >
end - start + 1 > 4096Description
TRUEnever evaluated
FALSEnever evaluated
0
206 4096
end - start + 1 > 4096Description
TRUEnever evaluated
FALSEnever evaluated
0
207 )-
208 new_size += end - start + 1;
never executed: new_size += end - start + 1;
0
209 else-
210 new_size +=
never executed: new_size += 4096 ;
0
211 4096
never executed: new_size += 4096 ;
0
212 ;
never executed: new_size += 4096 ;
0
213 rname = xrealloc (rname, new_size);-
214 rname_limit = rname + new_size;-
215-
216 dest = rname + dest_offset;-
217 }
never executed: end of block
0
218-
219 dest = memcpy (dest, start, end - start);-
220 dest += end - start;-
221 *dest = '\0';-
222-
223 if (logical
logicalDescription
TRUEevaluated 23 times by 1 test
Evaluated by:
  • realpath
FALSEevaluated 1131 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
&& (
(can_mode == CAN_MISSING)Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • realpath
FALSEevaluated 2 times by 1 test
Evaluated by:
  • realpath
can_mode == CAN_MISSING)
(can_mode == CAN_MISSING)Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • realpath
FALSEevaluated 2 times by 1 test
Evaluated by:
  • realpath
)
2-1131
224 {-
225-
226-
227-
228 st.st_mode = 0;-
229 }
executed 21 times by 1 test: end of block
Executed by:
  • realpath
21
230 else if ((
(logical ? sta...me, &st)) != 0Description
TRUEevaluated 133 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1000 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
logical
logicalDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • realpath
FALSEevaluated 1131 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
? stat (rname, &st) : lstat (rname, &st)) != 0
(logical ? sta...me, &st)) != 0Description
TRUEevaluated 133 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 1000 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
2-1131
231 {-
232-
233 saved_errno = -
234 (*__errno_location ())-
235 ;-
236 if (can_mode == CAN_EXISTING
can_mode == CAN_EXISTINGDescription
TRUEevaluated 18 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 115 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
18-115
237 goto
executed 18 times by 1 test: goto error;
Executed by:
  • readlink
error;
executed 18 times by 1 test: goto error;
Executed by:
  • readlink
18
238 if (can_mode == CAN_ALL_BUT_LAST
can_mode == CAN_ALL_BUT_LASTDescription
TRUEevaluated 36 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 79 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
36-79
239 {-
240 if (end[
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
16-20
241 __builtin_strspn (
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
16-20
242 end
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
16-20
243 ,
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
16-20
244 "/"
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
16-20
245 )
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
16-20
246 ]
end[ __builtin... end , "/" ) ]Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
|| saved_errno !=
saved_errno != 2Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
0-20
247 2
saved_errno != 2Description
TRUEnever evaluated
FALSEevaluated 20 times by 1 test
Evaluated by:
  • readlink
0-20
248 )-
249 goto
executed 16 times by 1 test: goto error;
Executed by:
  • readlink
error;
executed 16 times by 1 test: goto error;
Executed by:
  • readlink
16
250 continue;
executed 20 times by 1 test: continue;
Executed by:
  • readlink
20
251 }-
252 st.st_mode = 0;-
253 }
executed 79 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
79
254-
255 if (-
256 ((((
(((( st.st_mod... == (0120000))Description
TRUEevaluated 175 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 925 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
175-925
257 st.st_mode
(((( st.st_mod... == (0120000))Description
TRUEevaluated 175 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 925 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
175-925
258 )) & 0170000) == (0120000))
(((( st.st_mod... == (0120000))Description
TRUEevaluated 175 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 925 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
175-925
259 )-
260 {-
261 char *buf;-
262 size_t n, len;-
263-
264-
265-
266-
267-
268 if (seen_triple (&ht, name, &st)
seen_triple (&ht, name, &st)Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 165 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
10-165
269 {-
270 if (can_mode == CAN_MISSING
can_mode == CAN_MISSINGDescription
TRUEnever evaluated
FALSEevaluated 10 times by 1 test
Evaluated by:
  • readlink
)
0-10
271 continue;
never executed: continue;
0
272 saved_errno = -
273 40-
274 ;-
275 goto
executed 10 times by 1 test: goto error;
Executed by:
  • readlink
error;
executed 10 times by 1 test: goto error;
Executed by:
  • readlink
10
276 }-
277-
278 buf = areadlink_with_size (rname, st.st_size);-
279 if (!buf
!bufDescription
TRUEnever evaluated
FALSEevaluated 165 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
0-165
280 {-
281 if (can_mode == CAN_MISSING
can_mode == CAN_MISSINGDescription
TRUEnever evaluated
FALSEnever evaluated
&&
0
282 (*
(*__errno_location ()) != 12Description
TRUEnever evaluated
FALSEnever evaluated
__errno_location ())
(*__errno_location ()) != 12Description
TRUEnever evaluated
FALSEnever evaluated
0
283 !=
(*__errno_location ()) != 12Description
TRUEnever evaluated
FALSEnever evaluated
0
284 12
(*__errno_location ()) != 12Description
TRUEnever evaluated
FALSEnever evaluated
0
285 )-
286 continue;
never executed: continue;
0
287 saved_errno = -
288 (*__errno_location ())-
289 ;-
290 goto
never executed: goto error;
error;
never executed: goto error;
0
291 }-
292-
293 n = strlen (buf);-
294 len = strlen (end);-
295-
296 if (!extra_len
!extra_lenDescription
TRUEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 35 times by 2 tests
Evaluated by:
  • ln
  • readlink
)
35-130
297 {-
298 extra_len =-
299 ((
((n + len + 1) > 4096 )Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
n + len + 1) >
((n + len + 1) > 4096 )Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
0-130
300 4096
((n + len + 1) > 4096 )Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
0-130
301 )
((n + len + 1) > 4096 )Description
TRUEnever evaluated
FALSEevaluated 130 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
? (n + len + 1) :
0-130
302 4096-
303 ;-
304 extra_buf = xmalloc (extra_len);-
305 }
executed 130 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
130
306 else if ((
(n + len + 1) > extra_lenDescription
TRUEnever evaluated
FALSEevaluated 35 times by 2 tests
Evaluated by:
  • ln
  • readlink
n + len + 1) > extra_len
(n + len + 1) > extra_lenDescription
TRUEnever evaluated
FALSEevaluated 35 times by 2 tests
Evaluated by:
  • ln
  • readlink
)
0-35
307 {-
308 extra_len = n + len + 1;-
309 extra_buf = xrealloc (extra_buf, extra_len);-
310 }
never executed: end of block
0
311-
312-
313 memmove (&extra_buf[n], end, len + 1);-
314 name = end = memcpy (extra_buf, buf, n);-
315-
316 if (((((
(((buf)[0]) == '/')Description
TRUEevaluated 18 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 147 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
buf)[0]) == '/')
(((buf)[0]) == '/')Description
TRUEevaluated 18 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 147 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
|| 0 != 0
0 != 0Description
TRUEnever evaluated
FALSEevaluated 147 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
))
0-147
317 {-
318 size_t pfxlen = 0;-
319-
320 if (pfxlen
pfxlenDescription
TRUEnever evaluated
FALSEevaluated 18 times by 2 tests
Evaluated by:
  • readlink
  • realpath
)
0-18
321 memcpy (rname, buf, pfxlen);
never executed: memcpy (rname, buf, pfxlen);
0
322 dest = rname + pfxlen;-
323 *dest++ = '/';-
324 if (0)-
325 {
dead code: { if (((buf[1]) == '/') && !((buf[2]) == '/') && !pfxlen) *dest++ = '/'; *dest = '\0'; }
-
326 if (((buf[1]) == '/') && !((buf[2]) == '/') && !pfxlen)
dead code: { if (((buf[1]) == '/') && !((buf[2]) == '/') && !pfxlen) *dest++ = '/'; *dest = '\0'; }
-
327 *dest++ = '/';
dead code: { if (((buf[1]) == '/') && !((buf[2]) == '/') && !pfxlen) *dest++ = '/'; *dest = '\0'; }
-
328 *dest = '\0';
dead code: { if (((buf[1]) == '/') && !((buf[2]) == '/') && !pfxlen) *dest++ = '/'; *dest = '\0'; }
-
329 }
dead code: { if (((buf[1]) == '/') && !((buf[2]) == '/') && !pfxlen) *dest++ = '/'; *dest = '\0'; }
-
330-
331 prefix_len = pfxlen;-
332 }
executed 18 times by 2 tests: end of block
Executed by:
  • readlink
  • realpath
18
333 else-
334 {-
335-
336-
337 if (dest > rname + prefix_len + 1
dest > rname + prefix_len + 1Description
TRUEevaluated 147 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
)
0-147
338 for (--dest; dest > rname
dest > rnameDescription
TRUEevaluated 608 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
&& !((dest[-1]) == '/')
!((dest[-1]) == '/')Description
TRUEevaluated 461 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 147 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
; --dest)
0-608
339 continue;
executed 461 times by 3 tests: continue;
Executed by:
  • ln
  • readlink
  • realpath
461
340 if (0 && dest == rname + 1
dead code: dest == rname + 1
-
341 && ((*
dead code: ((*dest) == '/')
dest) == '/')
dead code: ((*dest) == '/')
&& !((dest[1]) == '/')
dead code: !((dest[1]) == '/')
&& !prefix_len
dead code: !prefix_len
)
-
342 dest++;
dead code: dest++;
-
343 }
executed 147 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
147
344-
345 free (buf);-
346 }
executed 165 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
165
347 else-
348 {-
349 if (!
! (((( st.st_m... == (0040000))Description
TRUEevaluated 149 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 776 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
149-776
350 ((((
! (((( st.st_m... == (0040000))Description
TRUEevaluated 149 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 776 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
149-776
351 st.st_mode
! (((( st.st_m... == (0040000))Description
TRUEevaluated 149 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 776 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
149-776
352 )) & 0170000) == (0040000))
! (((( st.st_m... == (0040000))Description
TRUEevaluated 149 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 776 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
149-776
353 && *
*endDescription
TRUEevaluated 73 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 76 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
end
*endDescription
TRUEevaluated 73 times by 2 tests
Evaluated by:
  • readlink
  • realpath
FALSEevaluated 76 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
&& (
(can_mode != CAN_MISSING)Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 55 times by 2 tests
Evaluated by:
  • readlink
  • realpath
can_mode != CAN_MISSING)
(can_mode != CAN_MISSING)Description
TRUEevaluated 18 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 55 times by 2 tests
Evaluated by:
  • readlink
  • realpath
)
18-76
354 {-
355 saved_errno = -
356 20-
357 ;-
358 goto
executed 18 times by 1 test: goto error;
Executed by:
  • readlink
error;
executed 18 times by 1 test: goto error;
Executed by:
  • readlink
18
359 }-
360 }
executed 907 times by 3 tests: end of block
Executed by:
  • ln
  • readlink
  • realpath
907
361 }-
362 }-
363 if (dest > rname + prefix_len + 1
dest > rname + prefix_len + 1Description
TRUEevaluated 170 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 35 times by 2 tests
Evaluated by:
  • readlink
  • realpath
&& ((
((dest[-1]) == '/')Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • realpath
FALSEevaluated 168 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
dest[-1]) == '/')
((dest[-1]) == '/')Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • realpath
FALSEevaluated 168 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
2-170
364 --
executed 2 times by 1 test: --dest;
Executed by:
  • realpath
dest;
executed 2 times by 1 test: --dest;
Executed by:
  • realpath
2
365 if (0 && dest == rname + 1
dead code: dest == rname + 1
&& !prefix_len
dead code: !prefix_len
-
366 && ((*
dead code: ((*dest) == '/')
dest) == '/')
dead code: ((*dest) == '/')
&& !((dest[1]) == '/')
dead code: !((dest[1]) == '/')
)
-
367 dest++;
dead code: dest++;
-
368 *dest = '\0';-
369 if (rname_limit != dest + 1
rname_limit != dest + 1Description
TRUEevaluated 205 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEnever evaluated
)
0-205
370 rname = xrealloc (rname, dest - rname + 1);
executed 205 times by 3 tests: rname = xrealloc (rname, dest - rname + 1);
Executed by:
  • ln
  • readlink
  • realpath
205
371-
372 free (extra_buf);-
373 if (ht
htDescription
TRUEevaluated 84 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
FALSEevaluated 121 times by 3 tests
Evaluated by:
  • ln
  • readlink
  • realpath
)
84-121
374 hash_free (ht);
executed 84 times by 3 tests: hash_free (ht);
Executed by:
  • ln
  • readlink
  • realpath
84
375 return
executed 205 times by 3 tests: return rname;
Executed by:
  • ln
  • readlink
  • realpath
rname;
executed 205 times by 3 tests: return rname;
Executed by:
  • ln
  • readlink
  • realpath
205
376-
377error:-
378 free (extra_buf);-
379 free (rname);-
380 if (ht
htDescription
TRUEevaluated 46 times by 1 test
Evaluated by:
  • readlink
FALSEevaluated 16 times by 1 test
Evaluated by:
  • readlink
)
16-46
381 hash_free (ht);
executed 46 times by 1 test: hash_free (ht);
Executed by:
  • readlink
46
382 -
383 (*__errno_location ()) -
384 = saved_errno;-
385 return
executed 62 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
executed 62 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
62
386 ((void *)0)
executed 62 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
62
387 ;
executed 62 times by 1 test: return ((void *)0) ;
Executed by:
  • readlink
62
388}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2