Coverage Report

Created: 2022-04-19 08:24

/work/build/src/basic/cap-from-name.h
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
#if __GNUC__ >= 7
35
_Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
36
#endif
37
#line 6 "src/basic/cap-from-name.gperf"
38
struct capability_name { const char* name; int id; };
39
40
#define TOTAL_KEYWORDS 41
41
19.0k
#define MIN_WORD_LENGTH 7
42
40.0k
#define MAX_WORD_LENGTH 22
43
#define MIN_HASH_VALUE 7
44
7.36k
#define MAX_HASH_VALUE 74
45
/* maximum key range = 68, duplicates = 0 */
46
47
#ifndef GPERF_DOWNCASE
48
#define GPERF_DOWNCASE 1
49
static unsigned char gperf_downcase[256] =
50
  {
51
      0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
52
     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
53
     30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,
54
     45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
55
     60,  61,  62,  63,  64,  97,  98,  99, 100, 101, 102, 103, 104, 105, 106,
56
    107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
57
    122,  91,  92,  93,  94,  95,  96,  97,  98,  99, 100, 101, 102, 103, 104,
58
    105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
59
    120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
60
    135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
61
    150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
62
    165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
63
    180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
64
    195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
65
    210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
66
    225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
67
    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
68
    255
69
  };
70
#endif
71
72
#ifndef GPERF_CASE_STRCMP
73
#define GPERF_CASE_STRCMP 1
74
static int
75
gperf_case_strcmp (register const char *s1, register const char *s2)
76
1.90k
{
77
1.90k
  for (;;)
78
10.6k
    {
79
10.6k
      unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
80
10.6k
      unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
81
10.6k
      if (c1 != 0 && c1 == c2)
82
8.76k
        continue;
83
1.90k
      return (int)c1 - (int)c2;
84
10.6k
    }
85
1.90k
}
86
#endif
87
88
#ifdef __GNUC__
89
__inline
90
#else
91
#ifdef __cplusplus
92
inline
93
#endif
94
#endif
95
static unsigned int
96
hash_capability_name (register const char *str, register size_t len)
97
7.36k
{
98
7.36k
  static const unsigned char asso_values[] =
99
7.36k
    {
100
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
101
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
102
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
103
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
104
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
105
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
106
7.36k
      75, 75, 75, 75, 75,  5,  0,  0,  0, 35,
107
7.36k
       0, 20, 75, 10, 75, 25, 10, 15, 10, 25,
108
7.36k
      25, 75,  0,  0,  5,  0, 75, 25, 30, 75,
109
7.36k
      75, 75, 75, 75, 75,  0, 75,  5,  0,  0,
110
7.36k
       0, 35,  0, 20, 75, 10, 75, 25, 10, 15,
111
7.36k
      10, 25, 25, 75,  0,  0,  5,  0, 75, 25,
112
7.36k
      30, 75, 75, 75, 75, 75, 75, 75, 75, 75,
113
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
114
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
115
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
116
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
117
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
118
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
119
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
120
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
121
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
122
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
123
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
124
7.36k
      75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
125
7.36k
      75, 75, 75, 75, 75, 75
126
7.36k
    };
127
7.36k
  register unsigned int hval = len;
128
129
7.36k
  switch (hval)
130
7.36k
    {
131
4.12k
      default:
132
4.12k
        hval += asso_values[(unsigned char)str[8]];
133
      /*FALLTHROUGH*/
134
5.38k
      case 8:
135
5.38k
        hval += asso_values[(unsigned char)str[7]];
136
      /*FALLTHROUGH*/
137
7.36k
      case 7:
138
7.36k
      case 6:
139
7.36k
      case 5:
140
7.36k
        hval += asso_values[(unsigned char)str[4]];
141
7.36k
        break;
142
7.36k
    }
143
7.36k
  return hval;
144
7.36k
}
145
146
const struct capability_name *
147
lookup_capability (register const char *str, register size_t len)
148
20.0k
{
149
20.0k
  static const struct capability_name wordlist[] =
150
20.0k
    {
151
20.0k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
152
20.0k
      {(char*)0}, {(char*)0}, {(char*)0},
153
20.0k
#line 13 "src/basic/cap-from-name.gperf"
154
20.0k
      {"CAP_BPF", CAP_BPF},
155
20.0k
      {(char*)0}, {(char*)0}, {(char*)0},
156
20.0k
#line 33 "src/basic/cap-from-name.gperf"
157
20.0k
      {"CAP_SETFCAP", CAP_SETFCAP},
158
20.0k
#line 39 "src/basic/cap-from-name.gperf"
159
20.0k
      {"CAP_SYS_BOOT", CAP_SYS_BOOT},
160
20.0k
#line 45 "src/basic/cap-from-name.gperf"
161
20.0k
      {"CAP_SYS_RAWIO", CAP_SYS_RAWIO},
162
20.0k
#line 40 "src/basic/cap-from-name.gperf"
163
20.0k
      {"CAP_SYS_CHROOT", CAP_SYS_CHROOT},
164
20.0k
      {(char*)0},
165
20.0k
#line 46 "src/basic/cap-from-name.gperf"
166
20.0k
      {"CAP_SYS_RESOURCE", CAP_SYS_RESOURCE},
167
20.0k
#line 47 "src/basic/cap-from-name.gperf"
168
20.0k
      {"CAP_SYS_TIME", CAP_SYS_TIME},
169
20.0k
#line 38 "src/basic/cap-from-name.gperf"
170
20.0k
      {"CAP_SYS_ADMIN", CAP_SYS_ADMIN},
171
20.0k
#line 17 "src/basic/cap-from-name.gperf"
172
20.0k
      {"CAP_DAC_READ_SEARCH", CAP_DAC_READ_SEARCH},
173
20.0k
#line 36 "src/basic/cap-from-name.gperf"
174
20.0k
      {"CAP_SETUID", CAP_SETUID},
175
20.0k
#line 31 "src/basic/cap-from-name.gperf"
176
20.0k
      {"CAP_NET_RAW", CAP_NET_RAW},
177
20.0k
#line 42 "src/basic/cap-from-name.gperf"
178
20.0k
      {"CAP_SYS_NICE", CAP_SYS_NICE},
179
20.0k
#line 48 "src/basic/cap-from-name.gperf"
180
20.0k
      {"CAP_SYS_TTY_CONFIG", CAP_SYS_TTY_CONFIG},
181
20.0k
      {(char*)0},
182
20.0k
#line 19 "src/basic/cap-from-name.gperf"
183
20.0k
      {"CAP_FSETID", CAP_FSETID},
184
20.0k
      {(char*)0},
185
20.0k
#line 30 "src/basic/cap-from-name.gperf"
186
20.0k
      {"CAP_NET_BROADCAST", CAP_NET_BROADCAST},
187
20.0k
#line 28 "src/basic/cap-from-name.gperf"
188
20.0k
      {"CAP_NET_ADMIN", CAP_NET_ADMIN},
189
20.0k
#line 41 "src/basic/cap-from-name.gperf"
190
20.0k
      {"CAP_SYS_MODULE", CAP_SYS_MODULE},
191
20.0k
#line 29 "src/basic/cap-from-name.gperf"
192
20.0k
      {"CAP_NET_BIND_SERVICE", CAP_NET_BIND_SERVICE},
193
20.0k
      {(char*)0},
194
20.0k
#line 20 "src/basic/cap-from-name.gperf"
195
20.0k
      {"CAP_IPC_LOCK", CAP_IPC_LOCK},
196
20.0k
#line 25 "src/basic/cap-from-name.gperf"
197
20.0k
      {"CAP_MAC_ADMIN", CAP_MAC_ADMIN},
198
20.0k
#line 10 "src/basic/cap-from-name.gperf"
199
20.0k
      {"CAP_AUDIT_READ", CAP_AUDIT_READ},
200
20.0k
#line 11 "src/basic/cap-from-name.gperf"
201
20.0k
      {"CAP_AUDIT_WRITE", CAP_AUDIT_WRITE},
202
20.0k
#line 35 "src/basic/cap-from-name.gperf"
203
20.0k
      {"CAP_SETPCAP", CAP_SETPCAP},
204
20.0k
#line 9 "src/basic/cap-from-name.gperf"
205
20.0k
      {"CAP_AUDIT_CONTROL", CAP_AUDIT_CONTROL},
206
20.0k
#line 43 "src/basic/cap-from-name.gperf"
207
20.0k
      {"CAP_SYS_PACCT", CAP_SYS_PACCT},
208
20.0k
#line 44 "src/basic/cap-from-name.gperf"
209
20.0k
      {"CAP_SYS_PTRACE", CAP_SYS_PTRACE},
210
20.0k
#line 34 "src/basic/cap-from-name.gperf"
211
20.0k
      {"CAP_SETGID", CAP_SETGID},
212
20.0k
#line 16 "src/basic/cap-from-name.gperf"
213
20.0k
      {"CAP_DAC_OVERRIDE", CAP_DAC_OVERRIDE},
214
20.0k
#line 12 "src/basic/cap-from-name.gperf"
215
20.0k
      {"CAP_BLOCK_SUSPEND", CAP_BLOCK_SUSPEND},
216
20.0k
#line 22 "src/basic/cap-from-name.gperf"
217
20.0k
      {"CAP_KILL", CAP_KILL},
218
20.0k
#line 15 "src/basic/cap-from-name.gperf"
219
20.0k
      {"CAP_CHOWN", CAP_CHOWN},
220
20.0k
#line 37 "src/basic/cap-from-name.gperf"
221
20.0k
      {"CAP_SYSLOG", CAP_SYSLOG},
222
20.0k
      {(char*)0},
223
20.0k
#line 14 "src/basic/cap-from-name.gperf"
224
20.0k
      {"CAP_CHECKPOINT_RESTORE", CAP_CHECKPOINT_RESTORE},
225
20.0k
#line 21 "src/basic/cap-from-name.gperf"
226
20.0k
      {"CAP_IPC_OWNER", CAP_IPC_OWNER},
227
20.0k
#line 27 "src/basic/cap-from-name.gperf"
228
20.0k
      {"CAP_MKNOD", CAP_MKNOD},
229
20.0k
      {(char*)0},
230
20.0k
#line 32 "src/basic/cap-from-name.gperf"
231
20.0k
      {"CAP_PERFMON", CAP_PERFMON},
232
20.0k
      {(char*)0}, {(char*)0},
233
20.0k
#line 23 "src/basic/cap-from-name.gperf"
234
20.0k
      {"CAP_LEASE", CAP_LEASE},
235
20.0k
#line 18 "src/basic/cap-from-name.gperf"
236
20.0k
      {"CAP_FOWNER", CAP_FOWNER},
237
20.0k
#line 26 "src/basic/cap-from-name.gperf"
238
20.0k
      {"CAP_MAC_OVERRIDE", CAP_MAC_OVERRIDE},
239
20.0k
      {(char*)0}, {(char*)0},
240
20.0k
#line 24 "src/basic/cap-from-name.gperf"
241
20.0k
      {"CAP_LINUX_IMMUTABLE", CAP_LINUX_IMMUTABLE},
242
20.0k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
243
20.0k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
244
20.0k
      {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
245
20.0k
      {(char*)0}, {(char*)0},
246
20.0k
#line 49 "src/basic/cap-from-name.gperf"
247
20.0k
      {"CAP_WAKE_ALARM", CAP_WAKE_ALARM}
248
20.0k
    };
249
250
20.0k
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
251
7.36k
    {
252
7.36k
      register unsigned int key = hash_capability_name (str, len);
253
254
7.36k
      if (key <= MAX_HASH_VALUE)
255
3.96k
        {
256
3.96k
          register const char *s = wordlist[key].name;
257
258
3.96k
          if (s && (((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
259
643
            return &wordlist[key];
260
3.96k
        }
261
7.36k
    }
262
19.4k
  return 0;
263
20.0k
}