Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/tests/sys/mac/do/invalid_configs.sh
289024 views
1
# Copyright (c) 2026 The FreeBSD Foundation
2
#
3
# SPDX-License-Identifier: BSD-2-Clause
4
#
5
# This software was developed by Olivier Certner <[email protected]> at
6
# Kumacom SARL under sponsorship from the FreeBSD Foundation.
7
8
atf_test_case rule_no_target_part
9
rule_no_target_part_head()
10
{
11
atf_set descr "Missing target part in a rule"
12
}
13
rule_no_target_part_body()
14
{
15
sysctl_set_and_check_fails_rules "uid=0>"
16
sysctl_set_and_check_fails_rules "gid=0>"
17
sysctl_set_and_check_fails_rules "uid=0"
18
sysctl_set_and_check_fails_rules "gid=0"
19
}
20
21
atf_test_case rule_no_match_part
22
rule_no_match_part_head()
23
{
24
atf_set descr "Missing match part in a rule"
25
}
26
rule_no_match_part_body()
27
{
28
sysctl_set_and_check_fails_rules ">uid=0"
29
sysctl_set_and_check_fails_rules ">gid=0"
30
}
31
32
atf_test_case rule_space_between_flag_and_gid_fail
33
rule_space_between_flag_and_gid_fail_head()
34
{
35
atf_set descr "No space allowed between flag and GID"
36
}
37
rule_space_between_flag_and_gid_fail_body()
38
{
39
sysctl_set_and_check_fails_rules "uid=1001>uid=0,gid=0,+ gid=0"
40
}
41
42
atf_test_case rule_user_names_fail
43
rule_user_names_fail_head()
44
{
45
atf_set descr "Reject user names (only numerical IDs supported)"
46
}
47
rule_user_names_fail_body()
48
{
49
sysctl_set_and_check_fails_rules "uid=user>uid=0"
50
sysctl_set_and_check_fails_rules "uid=1001>uid=root"
51
}
52
53
atf_test_case rule_group_names_fail
54
rule_group_names_fail_head()
55
{
56
atf_set descr "Reject group names (only numerical IDs supported)"
57
}
58
rule_group_names_fail_body()
59
{
60
sysctl_set_and_check_fails_rules "gid=group>gid=0"
61
sysctl_set_and_check_fails_rules "gid=1001>gid=root"
62
sysctl_set_and_check_fails_rules "gid=1001>gid=0,+gid=operator"
63
}
64
65
atf_test_case rules_wrong_separator
66
rules_wrong_separator_head()
67
{
68
atf_set descr "Wrong rules separator"
69
}
70
rules_wrong_separator_body()
71
{
72
sysctl_set_and_check_fails_rules "uid=1001>gid=0:gid=1001>gid=5"
73
}
74
75
# Added after observing a panic() in this situation because of a double-free
76
# after introduction of "exec_paths".
77
atf_test_case non_first_rule_unparseable
78
non_first_rule_unparseable_head()
79
{
80
atf_set descr "Non-first rule wrong"
81
}
82
83
non_first_rule_unparseable_body()
84
{
85
sysctl_set_and_check_fails_rules "gid=1001>uid=0;hello"
86
}
87
88
89
atf_init_test_cases()
90
{
91
. "$(atf_get_srcdir)"/common.sh
92
93
atf_add_test_case rule_no_target_part
94
atf_add_test_case rule_no_match_part
95
atf_add_test_case rule_space_between_flag_and_gid_fail
96
atf_add_test_case rule_user_names_fail
97
atf_add_test_case rule_group_names_fail
98
atf_add_test_case rules_wrong_separator
99
atf_add_test_case non_first_rule_unparseable
100
}
101
102