OpenCoverage

openat-proc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/openat-proc.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12-
13-
14-
15char *-
16openat_proc_name (char buf[((-
17 4096-
18 ) < (4096 - 64) ? (-
19 4096-
20 ) : (4096 - 64))], int fd, char const *file)-
21{-
22 char *result = buf;-
23 int dirlen;-
24-
25-
26 if (!*file
!*fileDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
27 {-
28 buf[0] = '\0';-
29 return
never executed: return buf;
buf;
never executed: return buf;
0
30 }-
31-
32-
33-
34 {-
35 enum {-
36 PROC_SELF_FD_DIR_SIZE_BOUND-
37 = (sizeof "/proc/self/fd/%d/" - (sizeof "%d" - 1)-
38 + (((((sizeof (int) * 8) - (! ((__typeof__ (int)) 0 < (__typeof__ (int)) -1))) * 146 + 484) / 485) + (! ((__typeof__ (int)) 0 < (__typeof__ (int)) -1))))-
39 };-
40-
41 static int proc_status = 0;-
42 if (! proc_status
! proc_statusDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
43 {-
44 int proc_self_fd = open ("/proc/self/fd",-
45 -
46 00 -
47 | -
48 0200000 -
49 | -
50 0400 -
51 | -
52 04000-
53 );-
54 if (proc_self_fd < 0
proc_self_fd < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
55 proc_status = -1;
never executed: proc_status = -1;
0
56 else-
57 {-
58-
59-
60-
61-
62-
63 char dotdot_buf[PROC_SELF_FD_DIR_SIZE_BOUND + sizeof "../fd" - 1];-
64 sprintf (dotdot_buf, "/proc/self/fd/%d/" "../fd", proc_self_fd);-
65 proc_status = access (dotdot_buf,
access (dotdot_buf, 0 )Description
TRUEnever evaluated
FALSEnever evaluated
0
66 0
access (dotdot_buf, 0 )Description
TRUEnever evaluated
FALSEnever evaluated
0
67 )
access (dotdot_buf, 0 )Description
TRUEnever evaluated
FALSEnever evaluated
? -1 : 1;
0
68 close (proc_self_fd);-
69 }
never executed: end of block
0
70 }-
71-
72 if (proc_status < 0
proc_status < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
73 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
74 ((void *)0)
never executed: return ((void *)0) ;
0
75 ;
never executed: return ((void *)0) ;
0
76 else-
77 {-
78 size_t bufsize = PROC_SELF_FD_DIR_SIZE_BOUND + strlen (file);-
79 if (((
( 4096 ) < (4096 - 64)Description
TRUEnever evaluated
FALSEnever evaluated
(( 4096 ) < (4...64)) < bufsizeDescription
TRUEnever evaluated
FALSEnever evaluated
0
80 4096
( 4096 ) < (4096 - 64)Description
TRUEnever evaluated
FALSEnever evaluated
(( 4096 ) < (4...64)) < bufsizeDescription
TRUEnever evaluated
FALSEnever evaluated
0
81 ) < (4096 - 64)
( 4096 ) < (4096 - 64)Description
TRUEnever evaluated
FALSEnever evaluated
? (
(( 4096 ) < (4...64)) < bufsizeDescription
TRUEnever evaluated
FALSEnever evaluated
0
82 4096
(( 4096 ) < (4...64)) < bufsizeDescription
TRUEnever evaluated
FALSEnever evaluated
0
83 ) : (4096 - 64)) < bufsize
(( 4096 ) < (4...64)) < bufsizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
84 {-
85 result = malloc (bufsize);-
86 if (! result
! resultDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
87 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
88 ((void *)0)
never executed: return ((void *)0) ;
0
89 ;
never executed: return ((void *)0) ;
0
90 }
never executed: end of block
0
91-
92 dirlen = sprintf (result, "/proc/self/fd/%d/", fd);-
93 }
never executed: end of block
0
94 }-
95 strcpy (result + dirlen, file);-
96 return
never executed: return result;
result;
never executed: return result;
0
97}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2