Coverage Report

Created: 2019-06-19 13:33

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