Coverage Report

Created: 2025-07-09 06:39

/work/build/src/basic/cap-from-name.inc
Line
Count
Source (jump to first uncovered line)
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/cap-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/cap-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
39
#line 8 "src/basic/cap-from-name.gperf"
40
struct capability_name { const char* name; int id; };
41
42
#define TOTAL_KEYWORDS 41
43
10.5k
#define MIN_WORD_LENGTH 7
44
22.2k
#define MAX_WORD_LENGTH 22
45
#define MIN_HASH_VALUE 7
46
6.19k
#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
2.63k
{
79
2.63k
  for (;;)
80
22.7k
    {
81
22.7k
      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
82
22.7k
      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
83
22.7k
      if (c1 != 0 && c1 == c2)
84
20.0k
        continue;
85
2.63k
      return (int)c1 - (int)c2;
86
22.7k
    }
87
2.63k
}
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
6.19k
{
100
6.19k
  static const unsigned char asso_values[] =
101
6.19k
    {
102
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
103
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
104
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
105
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
106
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
107
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
108
6.19k
      75, 75, 75, 75, 75,  5,  0,  0,  0, 35,
109
6.19k
       0, 20, 75, 10, 75, 25, 10, 15, 10, 25,
110
6.19k
      25, 75,  0,  0,  5,  0, 75, 25, 30, 75,
111
6.19k
      75, 75, 75, 75, 75,  0, 75,  5,  0,  0,
112
6.19k
       0, 35,  0, 20, 75, 10, 75, 25, 10, 15,
113
6.19k
      10, 25, 25, 75,  0,  0,  5,  0, 75, 25,
114
6.19k
      30, 75, 75, 75, 75, 75, 75, 75, 75, 75,
115
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
116
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
117
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
118
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
119
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
120
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
121
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
122
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
123
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
124
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
125
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
126
6.19k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
127
6.19k
      75, 75, 75, 75, 75, 75
128
6.19k
    };
129
6.19k
  register unsigned int hval = len;
130
131
6.19k
  switch (hval)
132
6.19k
    {
133
2.96k
      default:
134
2.96k
        hval += asso_values[(unsigned char)str[8]];
135
      /*FALLTHROUGH*/
136
3.99k
      case 8:
137
3.99k
        hval += asso_values[(unsigned char)str[7]];
138
      /*FALLTHROUGH*/
139
6.19k
      case 7:
140
6.19k
      case 6:
141
6.19k
      case 5:
142
6.19k
        hval += asso_values[(unsigned char)str[4]];
143
6.19k
        break;
144
6.19k
    }
145
6.19k
  return hval;
146
6.19k
}
147
148
const struct capability_name *
149
lookup_capability (register const char *str, register size_t len)
150
11.1k
{
151
11.1k
  static const struct capability_name wordlist[] =
152
11.1k
    {
153
11.1k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
154
11.1k
      {(char*)0}, {(char*)0}, {(char*)0},
155
11.1k
#line 15 "src/basic/cap-from-name.gperf"
156
11.1k
      {"CAP_BPF", CAP_BPF},
157
11.1k
      {(char*)0}, {(char*)0}, {(char*)0},
158
11.1k
#line 35 "src/basic/cap-from-name.gperf"
159
11.1k
      {"CAP_SETFCAP", CAP_SETFCAP},
160
11.1k
#line 41 "src/basic/cap-from-name.gperf"
161
11.1k
      {"CAP_SYS_BOOT", CAP_SYS_BOOT},
162
11.1k
#line 47 "src/basic/cap-from-name.gperf"
163
11.1k
      {"CAP_SYS_RAWIO", CAP_SYS_RAWIO},
164
11.1k
#line 42 "src/basic/cap-from-name.gperf"
165
11.1k
      {"CAP_SYS_CHROOT", CAP_SYS_CHROOT},
166
11.1k
      {(char*)0},
167
11.1k
#line 48 "src/basic/cap-from-name.gperf"
168
11.1k
      {"CAP_SYS_RESOURCE", CAP_SYS_RESOURCE},
169
11.1k
#line 49 "src/basic/cap-from-name.gperf"
170
11.1k
      {"CAP_SYS_TIME", CAP_SYS_TIME},
171
11.1k
#line 40 "src/basic/cap-from-name.gperf"
172
11.1k
      {"CAP_SYS_ADMIN", CAP_SYS_ADMIN},
173
11.1k
#line 19 "src/basic/cap-from-name.gperf"
174
11.1k
      {"CAP_DAC_READ_SEARCH", CAP_DAC_READ_SEARCH},
175
11.1k
#line 38 "src/basic/cap-from-name.gperf"
176
11.1k
      {"CAP_SETUID", CAP_SETUID},
177
11.1k
#line 33 "src/basic/cap-from-name.gperf"
178
11.1k
      {"CAP_NET_RAW", CAP_NET_RAW},
179
11.1k
#line 44 "src/basic/cap-from-name.gperf"
180
11.1k
      {"CAP_SYS_NICE", CAP_SYS_NICE},
181
11.1k
#line 50 "src/basic/cap-from-name.gperf"
182
11.1k
      {"CAP_SYS_TTY_CONFIG", CAP_SYS_TTY_CONFIG},
183
11.1k
      {(char*)0},
184
11.1k
#line 21 "src/basic/cap-from-name.gperf"
185
11.1k
      {"CAP_FSETID", CAP_FSETID},
186
11.1k
      {(char*)0},
187
11.1k
#line 32 "src/basic/cap-from-name.gperf"
188
11.1k
      {"CAP_NET_BROADCAST", CAP_NET_BROADCAST},
189
11.1k
#line 30 "src/basic/cap-from-name.gperf"
190
11.1k
      {"CAP_NET_ADMIN", CAP_NET_ADMIN},
191
11.1k
#line 43 "src/basic/cap-from-name.gperf"
192
11.1k
      {"CAP_SYS_MODULE", CAP_SYS_MODULE},
193
11.1k
#line 31 "src/basic/cap-from-name.gperf"
194
11.1k
      {"CAP_NET_BIND_SERVICE", CAP_NET_BIND_SERVICE},
195
11.1k
      {(char*)0},
196
11.1k
#line 22 "src/basic/cap-from-name.gperf"
197
11.1k
      {"CAP_IPC_LOCK", CAP_IPC_LOCK},
198
11.1k
#line 27 "src/basic/cap-from-name.gperf"
199
11.1k
      {"CAP_MAC_ADMIN", CAP_MAC_ADMIN},
200
11.1k
#line 12 "src/basic/cap-from-name.gperf"
201
11.1k
      {"CAP_AUDIT_READ", CAP_AUDIT_READ},
202
11.1k
#line 13 "src/basic/cap-from-name.gperf"
203
11.1k
      {"CAP_AUDIT_WRITE", CAP_AUDIT_WRITE},
204
11.1k
#line 37 "src/basic/cap-from-name.gperf"
205
11.1k
      {"CAP_SETPCAP", CAP_SETPCAP},
206
11.1k
#line 11 "src/basic/cap-from-name.gperf"
207
11.1k
      {"CAP_AUDIT_CONTROL", CAP_AUDIT_CONTROL},
208
11.1k
#line 45 "src/basic/cap-from-name.gperf"
209
11.1k
      {"CAP_SYS_PACCT", CAP_SYS_PACCT},
210
11.1k
#line 46 "src/basic/cap-from-name.gperf"
211
11.1k
      {"CAP_SYS_PTRACE", CAP_SYS_PTRACE},
212
11.1k
#line 36 "src/basic/cap-from-name.gperf"
213
11.1k
      {"CAP_SETGID", CAP_SETGID},
214
11.1k
#line 18 "src/basic/cap-from-name.gperf"
215
11.1k
      {"CAP_DAC_OVERRIDE", CAP_DAC_OVERRIDE},
216
11.1k
#line 14 "src/basic/cap-from-name.gperf"
217
11.1k
      {"CAP_BLOCK_SUSPEND", CAP_BLOCK_SUSPEND},
218
11.1k
#line 24 "src/basic/cap-from-name.gperf"
219
11.1k
      {"CAP_KILL", CAP_KILL},
220
11.1k
#line 17 "src/basic/cap-from-name.gperf"
221
11.1k
      {"CAP_CHOWN", CAP_CHOWN},
222
11.1k
#line 39 "src/basic/cap-from-name.gperf"
223
11.1k
      {"CAP_SYSLOG", CAP_SYSLOG},
224
11.1k
      {(char*)0},
225
11.1k
#line 16 "src/basic/cap-from-name.gperf"
226
11.1k
      {"CAP_CHECKPOINT_RESTORE", CAP_CHECKPOINT_RESTORE},
227
11.1k
#line 23 "src/basic/cap-from-name.gperf"
228
11.1k
      {"CAP_IPC_OWNER", CAP_IPC_OWNER},
229
11.1k
#line 29 "src/basic/cap-from-name.gperf"
230
11.1k
      {"CAP_MKNOD", CAP_MKNOD},
231
11.1k
      {(char*)0},
232
11.1k
#line 34 "src/basic/cap-from-name.gperf"
233
11.1k
      {"CAP_PERFMON", CAP_PERFMON},
234
11.1k
      {(char*)0}, {(char*)0},
235
11.1k
#line 25 "src/basic/cap-from-name.gperf"
236
11.1k
      {"CAP_LEASE", CAP_LEASE},
237
11.1k
#line 20 "src/basic/cap-from-name.gperf"
238
11.1k
      {"CAP_FOWNER", CAP_FOWNER},
239
11.1k
#line 28 "src/basic/cap-from-name.gperf"
240
11.1k
      {"CAP_MAC_OVERRIDE", CAP_MAC_OVERRIDE},
241
11.1k
      {(char*)0}, {(char*)0},
242
11.1k
#line 26 "src/basic/cap-from-name.gperf"
243
11.1k
      {"CAP_LINUX_IMMUTABLE", CAP_LINUX_IMMUTABLE},
244
11.1k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
245
11.1k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
246
11.1k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
247
11.1k
      {(char*)0}, {(char*)0},
248
11.1k
#line 51 "src/basic/cap-from-name.gperf"
249
11.1k
      {"CAP_WAKE_ALARM", CAP_WAKE_ALARM}
250
11.1k
    };
251
252
11.1k
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
253
6.19k
    {
254
6.19k
      register unsigned int key = hash_capability_name (str, len);
255
256
6.19k
      if (key <= MAX_HASH_VALUE)
257
4.16k
        {
258
4.16k
          register const char *s = wordlist[key].name;
259
260
4.16k
          if (s && (((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
261
1.73k
            return &wordlist[key];
262
4.16k
        }
263
6.19k
    }
264
9.38k
  return 0;
265
11.1k
}