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

Function cap_rights_is_valid

freebsd/kern/subr_capability.c:312–338  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

310}
311
312bool
313cap_rights_is_valid(const cap_rights_t *rights)
314{
315 cap_rights_t allrights;
316 int i, j;
317
318 if (CAPVER(rights) != CAP_RIGHTS_VERSION_00)
319 return (false);
320 if (CAPARSIZE(rights) < CAPARSIZE_MIN ||
321 CAPARSIZE(rights) > CAPARSIZE_MAX) {
322 return (false);
323 }
324 CAP_ALL(&allrights);
325 if (!cap_rights_contains(&allrights, rights))
326 return (false);
327 for (i = 0; i < CAPARSIZE(rights); i++) {
328 j = right_to_index(rights->cr_rights[i]);
329 if (i != j)
330 return (false);
331 if (i > 0) {
332 if (CAPRVER(rights->cr_rights[i]) != 0)
333 return (false);
334 }
335 }
336
337 return (true);
338}
339
340cap_rights_t *
341cap_rights_merge(cap_rights_t *dst, const cap_rights_t *src)

Callers 4

sys_cap_rights_limitFunction · 0.85
cap_rights_mergeFunction · 0.85
cap_rights_removeFunction · 0.85
filecaps_validateFunction · 0.85

Calls 2

cap_rights_containsFunction · 0.85
right_to_indexFunction · 0.85

Tested by

no test coverage detected