Coverage Report

Created: 2025-06-13 06:27

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