MCPcopy Create free account
hub / github.com/F-Stack/f-stack / cap_rights_vclear

Function cap_rights_vclear

freebsd/kern/subr_capability.c:199–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

197}
198
199static void
200cap_rights_vclear(cap_rights_t *rights, va_list ap)
201{
202 uint64_t right;
203 int i, n __unused;
204
205 assert(CAPVER(rights) == CAP_RIGHTS_VERSION_00);
206
207 n = CAPARSIZE(rights);
208 assert(n >= CAPARSIZE_MIN && n <= CAPARSIZE_MAX);
209
210 for (;;) {
211 right = (uint64_t)va_arg(ap, unsigned long long);
212 if (right == 0)
213 break;
214 assert(CAPRVER(right) == 0);
215 i = right_to_index(right);
216 assert(i >= 0);
217 assert(i < n);
218 assert(CAPIDXBIT(rights->cr_rights[i]) == CAPIDXBIT(right));
219 rights->cr_rights[i] &= ~(right & 0x01FFFFFFFFFFFFFFULL);
220 assert(CAPIDXBIT(rights->cr_rights[i]) == CAPIDXBIT(right));
221 }
222}
223
224static bool
225cap_rights_is_vset(const cap_rights_t *rights, va_list ap)

Callers 1

__cap_rights_clearFunction · 0.85

Calls 1

right_to_indexFunction · 0.85

Tested by

no test coverage detected