OpenCoverage

careadlinkat.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/careadlinkat.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3char *-
4careadlinkat (int fd, char const *filename,-
5 char *buffer, size_t buffer_size,-
6 struct allocator const *alloc,-
7 ssize_t (*preadlinkat) (int, char const *, char *, size_t))-
8{-
9 char *buf;-
10 size_t buf_size;-
11 size_t buf_size_max =-
12 0x7fffffffffffffffL < ((size_t) -1)
0x7fffffffffff... ((size_t) -1)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
FALSEnever evaluated
? (size_t) 0x7fffffffffffffffL + 1 : ((size_t) -1);
0-2
13 char stack_buf[1024];-
14-
15 if (! alloc
! allocDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
FALSEnever evaluated
)
0-2
16 alloc = &stdlib_allocator;
executed 2 times by 1 test: alloc = &stdlib_allocator;
Executed by:
  • stdbuf
2
17-
18 if (! buffer_size
! buffer_sizeDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
FALSEnever evaluated
)
0-2
19 {-
20-
21-
22-
23-
24 buffer = stack_buf;-
25 buffer_size = sizeof stack_buf;-
26 }
executed 2 times by 1 test: end of block
Executed by:
  • stdbuf
2
27-
28 buf = buffer;-
29 buf_size = buffer_size;-
30-
31 do-
32 {-
33-
34 ssize_t link_length = preadlinkat (fd, filename, buf, buf_size);-
35 size_t link_size;-
36 if (link_length < 0
link_length < 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
)
0-2
37 {-
38-
39-
40 int readlinkat_errno = -
41 (*__errno_location ())-
42 ;-
43 if (readlinkat_errno !=
readlinkat_errno != 34Description
TRUEnever evaluated
FALSEnever evaluated
0
44 34
readlinkat_errno != 34Description
TRUEnever evaluated
FALSEnever evaluated
0
45 )-
46 {-
47 if (buf != buffer
buf != bufferDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
48 {-
49 alloc->free (buf);-
50 -
51 (*__errno_location ()) -
52 = readlinkat_errno;-
53 }
never executed: end of block
0
54 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
55 ((void *)0)
never executed: return ((void *)0) ;
0
56 ;
never executed: return ((void *)0) ;
0
57 }-
58 }
never executed: end of block
0
59-
60 link_size = link_length;-
61-
62 if (link_size < buf_size
link_size < buf_sizeDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
FALSEnever evaluated
)
0-2
63 {-
64 buf[link_size++] = '\0';-
65-
66 if (buf == stack_buf
buf == stack_bufDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
FALSEnever evaluated
)
0-2
67 {-
68 char *b = (char *) alloc->allocate (link_size);-
69 buf_size = link_size;-
70 if (! b
! bDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • stdbuf
)
0-2
71 break;
never executed: break;
0
72 memcpy (b, buf, link_size);-
73 buf = b;-
74 }
executed 2 times by 1 test: end of block
Executed by:
  • stdbuf
2
75 else if (link_size < buf_size
link_size < buf_sizeDescription
TRUEnever evaluated
FALSEnever evaluated
&& buf != buffer
buf != bufferDescription
TRUEnever evaluated
FALSEnever evaluated
&& alloc->reallocate
alloc->reallocateDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
76 {-
77-
78 char *b = (char *) alloc->reallocate (buf, link_size);-
79 if (b
bDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
80 buf = b;
never executed: buf = b;
0
81 }
never executed: end of block
0
82-
83 return
executed 2 times by 1 test: return buf;
Executed by:
  • stdbuf
buf;
executed 2 times by 1 test: return buf;
Executed by:
  • stdbuf
2
84 }-
85-
86 if (buf != buffer
buf != bufferDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
87 alloc->free (buf);
never executed: alloc->free (buf);
0
88-
89 if (buf_size <= buf_size_max / 2
buf_size <= buf_size_max / 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
90 buf_size *= 2;
never executed: buf_size *= 2;
0
91 else if (buf_size < buf_size_max
buf_size < buf_size_maxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
92 buf_size = buf_size_max;
never executed: buf_size = buf_size_max;
0
93 else if (buf_size_max < ((size_t) -1)
buf_size_max < ((size_t) -1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
94 {-
95 -
96 (*__errno_location ()) -
97 = -
98 36-
99 ;-
100 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
101 ((void *)0)
never executed: return ((void *)0) ;
0
102 ;
never executed: return ((void *)0) ;
0
103 }-
104 else-
105 break;
never executed: break;
0
106 buf = (char *) alloc->allocate (buf_size);-
107 }
never executed: end of block
0
108 while (buf
bufDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
109-
110 if (alloc->die
alloc->dieDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
111 alloc->die (buf_size);
never executed: alloc->die (buf_size);
0
112 -
113 (*__errno_location ()) -
114 = -
115 12-
116 ;-
117 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
118 ((void *)0)
never executed: return ((void *)0) ;
0
119 ;
never executed: return ((void *)0) ;
0
120}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2