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

Function lomac_valid

freebsd/security/mac_lomac/mac_lomac.c:353–421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

351}
352
353static int
354lomac_valid(struct mac_lomac *ml)
355{
356
357 if (ml->ml_flags & MAC_LOMAC_FLAG_SINGLE) {
358 switch (ml->ml_single.mle_type) {
359 case MAC_LOMAC_TYPE_GRADE:
360 case MAC_LOMAC_TYPE_EQUAL:
361 case MAC_LOMAC_TYPE_HIGH:
362 case MAC_LOMAC_TYPE_LOW:
363 break;
364
365 default:
366 return (EINVAL);
367 }
368 } else {
369 if (ml->ml_single.mle_type != MAC_LOMAC_TYPE_UNDEF)
370 return (EINVAL);
371 }
372
373 if (ml->ml_flags & MAC_LOMAC_FLAG_AUX) {
374 switch (ml->ml_auxsingle.mle_type) {
375 case MAC_LOMAC_TYPE_GRADE:
376 case MAC_LOMAC_TYPE_EQUAL:
377 case MAC_LOMAC_TYPE_HIGH:
378 case MAC_LOMAC_TYPE_LOW:
379 break;
380
381 default:
382 return (EINVAL);
383 }
384 } else {
385 if (ml->ml_auxsingle.mle_type != MAC_LOMAC_TYPE_UNDEF)
386 return (EINVAL);
387 }
388
389 if (ml->ml_flags & MAC_LOMAC_FLAG_RANGE) {
390 switch (ml->ml_rangelow.mle_type) {
391 case MAC_LOMAC_TYPE_GRADE:
392 case MAC_LOMAC_TYPE_EQUAL:
393 case MAC_LOMAC_TYPE_HIGH:
394 case MAC_LOMAC_TYPE_LOW:
395 break;
396
397 default:
398 return (EINVAL);
399 }
400
401 switch (ml->ml_rangehigh.mle_type) {
402 case MAC_LOMAC_TYPE_GRADE:
403 case MAC_LOMAC_TYPE_EQUAL:
404 case MAC_LOMAC_TYPE_HIGH:
405 case MAC_LOMAC_TYPE_LOW:
406 break;
407
408 default:
409 return (EINVAL);
410 }

Callers 2

lomac_parseFunction · 0.85

Calls 1

lomac_dominate_elementFunction · 0.85

Tested by

no test coverage detected