blob: d3d71a1b48a7583d9e19c78107462c66841045b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
NOTE regression tests for --regress enabled ksh
UNIT ksh-regress
EXPORT HOME=. ENV=.env.sh LC_ALL=C HISTFILE=
TEST mode suid/sgid combinations
# these tests are the product { all modes combinations } X { tests }
defaults=(
"etc=$HOME"
"source"
)
modes=(
interactive
login
privileged
rc
restricted
)
tests=(
""
"euid=0"
"euid=0 p_suid=0"
"euid=0 p_suid=99999"
"euid=1"
"euid=1 p_suid=0"
"euid=1 p_suid=99999"
"egid=1"
"egid=1 p_suid=0"
"egid=1 p_suid=99999"
)
integer n=1 m=${#modes[@]}
d=
for o in ${defaults[@]}
do d="$d --regress=$o"
done
for ((b=0; b<m; b++))
do (( n *= 3 ))
done
for (( b=0; b<n; b++ ))
do k=
z=$(printf "%0$m..3u" $b)
for (( i=0; i<m; i++ ))
do case $z in
1*) k="$k --no${modes[i]}" ;;
2*) k="$k --${modes[i]}" ;;
esac
z=${z#?}
done
for t in "${tests[@]}"
do o=$d
for r in $t
do o="$o --regress=$r"
done
o="$o $k"
EXEC $o <<!
set --state
!
done
done
TEST privileged/noprivileged sequence
EXEC --regress=etc=. --regress=euid=1 --privileged <<!
set --state; set --noprivileged; set --state; set --privileged; set --state; set --noprivileged; set --state
!
|