static bool ActionCheck(const Body *body, Seq *errors) { bool success = true; if (BodyHasConstraint(body, "log_kept") || BodyHasConstraint(body, "log_repaired") || BodyHasConstraint(body, "log_failed")) { if (!BodyHasConstraint(body, "log_string")) { SeqAppend(errors, PolicyErrorNew(POLICY_ELEMENT_TYPE_BODY, body, "An action body with log_kept, log_repaired or log_failed is required to have a log_string attribute")); success = false; } } return success; }
static bool AclCheck(const Body *body, Seq *errors) { bool success = true; if (BodyHasConstraint(body, "acl_directory_inherit") && BodyHasConstraint(body, "acl_default")) { SeqAppend(errors, PolicyErrorNew(POLICY_ELEMENT_TYPE_BODY, body, "An acl body cannot have both acl_directory_inherit and acl_default. Please use acl_default only")); success = false; } if (BodyHasConstraint(body, "specify_inherit_aces") && BodyHasConstraint(body, "specify_default_aces")) { SeqAppend(errors, PolicyErrorNew(POLICY_ELEMENT_TYPE_BODY, body, "An acl body cannot have both specify_inherit_aces and specify_default_aces. Please use specify_default_aces only")); success = false; } return success; }