Coverage Report

Created: 2025-06-24 06:40

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