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

Function rctl_rule_fully_specified

freebsd/kern/kern_rctl.c:1104–1143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1102}
1103
1104static int
1105rctl_rule_fully_specified(const struct rctl_rule *rule)
1106{
1107
1108 ASSERT_RACCT_ENABLED();
1109
1110 switch (rule->rr_subject_type) {
1111 case RCTL_SUBJECT_TYPE_UNDEFINED:
1112 return (0);
1113 case RCTL_SUBJECT_TYPE_PROCESS:
1114 if (rule->rr_subject.rs_proc == NULL)
1115 return (0);
1116 break;
1117 case RCTL_SUBJECT_TYPE_USER:
1118 if (rule->rr_subject.rs_uip == NULL)
1119 return (0);
1120 break;
1121 case RCTL_SUBJECT_TYPE_LOGINCLASS:
1122 if (rule->rr_subject.rs_loginclass == NULL)
1123 return (0);
1124 break;
1125 case RCTL_SUBJECT_TYPE_JAIL:
1126 if (rule->rr_subject.rs_prison_racct == NULL)
1127 return (0);
1128 break;
1129 default:
1130 panic("rctl_rule_fully_specified: unknown subject type %d",
1131 rule->rr_subject_type);
1132 }
1133 if (rule->rr_resource == RACCT_UNDEFINED)
1134 return (0);
1135 if (rule->rr_action == RCTL_ACTION_UNDEFINED)
1136 return (0);
1137 if (rule->rr_amount == RCTL_AMOUNT_UNDEFINED)
1138 return (0);
1139 if (rule->rr_per == RCTL_SUBJECT_TYPE_UNDEFINED)
1140 return (0);
1141
1142 return (1);
1143}
1144
1145static int
1146rctl_string_to_rule(char *rulestr, struct rctl_rule **rulep)

Callers 4

rctl_racct_add_ruleFunction · 0.85
rctl_rule_addFunction · 0.85
sys_rctl_add_ruleFunction · 0.85

Calls 1

panicFunction · 0.70

Tested by

no test coverage detected