Coverage Report

Created: 2026-01-25 06:28

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/build/src/basic/capability-from-name.inc
Line
Count
Source
1
/* ANSI-C code produced by gperf version 3.1 */
2
/* Command-line: /usr/bin/gperf -L ANSI-C -t --ignore-case -N lookup_capability -H hash_capability_name -p -C src/basic/capability-from-name.gperf  */
3
/* Computed positions: -k'5,8-9' */
4
5
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6
      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7
      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8
      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9
      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10
      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11
      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12
      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13
      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14
      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15
      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16
      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17
      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18
      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19
      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20
      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21
      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22
      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23
      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24
      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25
      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26
      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27
      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28
/* The character set is not based on ISO-646.  */
29
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
30
#endif
31
32
#line 1 "src/basic/capability-from-name.gperf"
33
34
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
35
#if __GNUC__ >= 15
36
_Pragma("GCC diagnostic ignored \"-Wzero-as-null-pointer-constant\"")
37
#endif
38
#include <linux/capability.h>
39
#line 8 "src/basic/capability-from-name.gperf"
40
struct capability_name { const char* name; int id; };
41
42
#define TOTAL_KEYWORDS 41
43
8.38k
#define MIN_WORD_LENGTH 7
44
17.7k
#define MAX_WORD_LENGTH 22
45
#define MIN_HASH_VALUE 7
46
5.20k
#define MAX_HASH_VALUE 74
47
/* maximum key range = 68, duplicates = 0 */
48
49
#ifndef GPERF_DOWNCASE
50
#define GPERF_DOWNCASE 1
51
static unsigned char gperf_downcase[256] =
52
  {
53
      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
54
     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
55
     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
56
     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
57
     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
58
    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
59
    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
60
    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
61
    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
62
    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
63
    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
64
    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
65
    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
66
    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
67
    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
68
    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
69
    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
70
    255
71
  };
72
#endif
73
74
#ifndef GPERF_CASE_STRCMP
75
#define GPERF_CASE_STRCMP 1
76
static int
77
gperf_case_strcmp (register const char *s1, register const char *s2)
78
1.80k
{
79
1.80k
  for (;;)
80
14.0k
    {
81
14.0k
      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
82
14.0k
      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
83
14.0k
      if (c1 != 0 && c1 == c2)
84
12.2k
        continue;
85
1.80k
      return (int)c1 - (int)c2;
86
14.0k
    }
87
1.80k
}
88
#endif
89
90
#ifdef __GNUC__
91
__inline
92
#else
93
#ifdef __cplusplus
94
inline
95
#endif
96
#endif
97
static unsigned int
98
hash_capability_name (register const char *str, register size_t len)
99
5.20k
{
100
5.20k
  static const unsigned char asso_values[] =
101
5.20k
    {
102
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
103
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
104
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
105
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
106
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
107
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
108
5.20k
      75, 75, 75, 75, 75,  5,  0,  0,  0, 35,
109
5.20k
       0, 20, 75, 10, 75, 25, 10, 15, 10, 25,
110
5.20k
      25, 75,  0,  0,  5,  0, 75, 25, 30, 75,
111
5.20k
      75, 75, 75, 75, 75,  0, 75,  5,  0,  0,
112
5.20k
       0, 35,  0, 20, 75, 10, 75, 25, 10, 15,
113
5.20k
      10, 25, 25, 75,  0,  0,  5,  0, 75, 25,
114
5.20k
      30, 75, 75, 75, 75, 75, 75, 75, 75, 75,
115
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
116
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
117
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
118
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
119
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
120
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
121
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
122
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
123
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
124
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
125
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
126
5.20k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
127
5.20k
      75, 75, 75, 75, 75, 75
128
5.20k
    };
129
5.20k
  register unsigned int hval = len;
130
131
5.20k
  switch (hval)
132
5.20k
    {
133
2.10k
      default:
134
2.10k
        hval += asso_values[(unsigned char)str[8]];
135
      /*FALLTHROUGH*/
136
3.03k
      case 8:
137
3.03k
        hval += asso_values[(unsigned char)str[7]];
138
      /*FALLTHROUGH*/
139
5.20k
      case 7:
140
5.20k
      case 6:
141
5.20k
      case 5:
142
5.20k
        hval += asso_values[(unsigned char)str[4]];
143
5.20k
        break;
144
5.20k
    }
145
5.20k
  return hval;
146
5.20k
}
147
148
const struct capability_name *
149
lookup_capability (register const char *str, register size_t len)
150
8.85k
{
151
8.85k
  static const struct capability_name wordlist[] =
152
8.85k
    {
153
8.85k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
154
8.85k
      {(char*)0}, {(char*)0}, {(char*)0},
155
8.85k
#line 15 "src/basic/capability-from-name.gperf"
156
8.85k
      {"CAP_BPF", CAP_BPF},
157
8.85k
      {(char*)0}, {(char*)0}, {(char*)0},
158
8.85k
#line 35 "src/basic/capability-from-name.gperf"
159
8.85k
      {"CAP_SETFCAP", CAP_SETFCAP},
160
8.85k
#line 41 "src/basic/capability-from-name.gperf"
161
8.85k
      {"CAP_SYS_BOOT", CAP_SYS_BOOT},
162
8.85k
#line 47 "src/basic/capability-from-name.gperf"
163
8.85k
      {"CAP_SYS_RAWIO", CAP_SYS_RAWIO},
164
8.85k
#line 42 "src/basic/capability-from-name.gperf"
165
8.85k
      {"CAP_SYS_CHROOT", CAP_SYS_CHROOT},
166
8.85k
      {(char*)0},
167
8.85k
#line 48 "src/basic/capability-from-name.gperf"
168
8.85k
      {"CAP_SYS_RESOURCE", CAP_SYS_RESOURCE},
169
8.85k
#line 49 "src/basic/capability-from-name.gperf"
170
8.85k
      {"CAP_SYS_TIME", CAP_SYS_TIME},
171
8.85k
#line 40 "src/basic/capability-from-name.gperf"
172
8.85k
      {"CAP_SYS_ADMIN", CAP_SYS_ADMIN},
173
8.85k
#line 19 "src/basic/capability-from-name.gperf"
174
8.85k
      {"CAP_DAC_READ_SEARCH", CAP_DAC_READ_SEARCH},
175
8.85k
#line 38 "src/basic/capability-from-name.gperf"
176
8.85k
      {"CAP_SETUID", CAP_SETUID},
177
8.85k
#line 33 "src/basic/capability-from-name.gperf"
178
8.85k
      {"CAP_NET_RAW", CAP_NET_RAW},
179
8.85k
#line 44 "src/basic/capability-from-name.gperf"
180
8.85k
      {"CAP_SYS_NICE", CAP_SYS_NICE},
181
8.85k
#line 50 "src/basic/capability-from-name.gperf"
182
8.85k
      {"CAP_SYS_TTY_CONFIG", CAP_SYS_TTY_CONFIG},
183
8.85k
      {(char*)0},
184
8.85k
#line 21 "src/basic/capability-from-name.gperf"
185
8.85k
      {"CAP_FSETID", CAP_FSETID},
186
8.85k
      {(char*)0},
187
8.85k
#line 32 "src/basic/capability-from-name.gperf"
188
8.85k
      {"CAP_NET_BROADCAST", CAP_NET_BROADCAST},
189
8.85k
#line 30 "src/basic/capability-from-name.gperf"
190
8.85k
      {"CAP_NET_ADMIN", CAP_NET_ADMIN},
191
8.85k
#line 43 "src/basic/capability-from-name.gperf"
192
8.85k
      {"CAP_SYS_MODULE", CAP_SYS_MODULE},
193
8.85k
#line 31 "src/basic/capability-from-name.gperf"
194
8.85k
      {"CAP_NET_BIND_SERVICE", CAP_NET_BIND_SERVICE},
195
8.85k
      {(char*)0},
196
8.85k
#line 22 "src/basic/capability-from-name.gperf"
197
8.85k
      {"CAP_IPC_LOCK", CAP_IPC_LOCK},
198
8.85k
#line 27 "src/basic/capability-from-name.gperf"
199
8.85k
      {"CAP_MAC_ADMIN", CAP_MAC_ADMIN},
200
8.85k
#line 12 "src/basic/capability-from-name.gperf"
201
8.85k
      {"CAP_AUDIT_READ", CAP_AUDIT_READ},
202
8.85k
#line 13 "src/basic/capability-from-name.gperf"
203
8.85k
      {"CAP_AUDIT_WRITE", CAP_AUDIT_WRITE},
204
8.85k
#line 37 "src/basic/capability-from-name.gperf"
205
8.85k
      {"CAP_SETPCAP", CAP_SETPCAP},
206
8.85k
#line 11 "src/basic/capability-from-name.gperf"
207
8.85k
      {"CAP_AUDIT_CONTROL", CAP_AUDIT_CONTROL},
208
8.85k
#line 45 "src/basic/capability-from-name.gperf"
209
8.85k
      {"CAP_SYS_PACCT", CAP_SYS_PACCT},
210
8.85k
#line 46 "src/basic/capability-from-name.gperf"
211
8.85k
      {"CAP_SYS_PTRACE", CAP_SYS_PTRACE},
212
8.85k
#line 36 "src/basic/capability-from-name.gperf"
213
8.85k
      {"CAP_SETGID", CAP_SETGID},
214
8.85k
#line 18 "src/basic/capability-from-name.gperf"
215
8.85k
      {"CAP_DAC_OVERRIDE", CAP_DAC_OVERRIDE},
216
8.85k
#line 14 "src/basic/capability-from-name.gperf"
217
8.85k
      {"CAP_BLOCK_SUSPEND", CAP_BLOCK_SUSPEND},
218
8.85k
#line 24 "src/basic/capability-from-name.gperf"
219
8.85k
      {"CAP_KILL", CAP_KILL},
220
8.85k
#line 17 "src/basic/capability-from-name.gperf"
221
8.85k
      {"CAP_CHOWN", CAP_CHOWN},
222
8.85k
#line 39 "src/basic/capability-from-name.gperf"
223
8.85k
      {"CAP_SYSLOG", CAP_SYSLOG},
224
8.85k
      {(char*)0},
225
8.85k
#line 16 "src/basic/capability-from-name.gperf"
226
8.85k
      {"CAP_CHECKPOINT_RESTORE", CAP_CHECKPOINT_RESTORE},
227
8.85k
#line 23 "src/basic/capability-from-name.gperf"
228
8.85k
      {"CAP_IPC_OWNER", CAP_IPC_OWNER},
229
8.85k
#line 29 "src/basic/capability-from-name.gperf"
230
8.85k
      {"CAP_MKNOD", CAP_MKNOD},
231
8.85k
      {(char*)0},
232
8.85k
#line 34 "src/basic/capability-from-name.gperf"
233
8.85k
      {"CAP_PERFMON", CAP_PERFMON},
234
8.85k
      {(char*)0}, {(char*)0},
235
8.85k
#line 25 "src/basic/capability-from-name.gperf"
236
8.85k
      {"CAP_LEASE", CAP_LEASE},
237
8.85k
#line 20 "src/basic/capability-from-name.gperf"
238
8.85k
      {"CAP_FOWNER", CAP_FOWNER},
239
8.85k
#line 28 "src/basic/capability-from-name.gperf"
240
8.85k
      {"CAP_MAC_OVERRIDE", CAP_MAC_OVERRIDE},
241
8.85k
      {(char*)0}, {(char*)0},
242
8.85k
#line 26 "src/basic/capability-from-name.gperf"
243
8.85k
      {"CAP_LINUX_IMMUTABLE", CAP_LINUX_IMMUTABLE},
244
8.85k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
245
8.85k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
246
8.85k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
247
8.85k
      {(char*)0}, {(char*)0},
248
8.85k
#line 51 "src/basic/capability-from-name.gperf"
249
8.85k
      {"CAP_WAKE_ALARM", CAP_WAKE_ALARM}
250
8.85k
    };
251
252
8.85k
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
253
5.20k
    {
254
5.20k
      register unsigned int key = hash_capability_name (str, len);
255
256
5.20k
      if (key <= MAX_HASH_VALUE)
257
3.25k
        {
258
3.25k
          register const char *s = wordlist[key].name;
259
260
3.25k
          if (s && (((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
261
1.10k
            return &wordlist[key];
262
3.25k
        }
263
5.20k
    }
264
7.74k
  return 0;
265
8.85k
}