Lines 7-29
depend() {
Link Here
|
7 |
} |
7 |
} |
8 |
|
8 |
|
9 |
checkconfig() { |
9 |
checkconfig() { |
10 |
/sbin/chpax -v /sbin/chpax >/dev/null 2>&1 || return 1 |
10 |
if [ "x$CHPAX" = "x" ]; then |
|
|
11 |
#CHPAX=/sbin/paxctl |
12 |
CHPAX=/sbin/chpax |
13 |
fi |
14 |
$CHPAX -v $CHPAX >/dev/null 2>&1 || return 1 |
11 |
} |
15 |
} |
12 |
|
16 |
|
13 |
chpax_flag() { |
17 |
chpax_flag() { |
14 |
flag=$1 |
18 |
flag=$1 |
15 |
fname=$2 |
19 |
fname=$2 |
16 |
|
20 |
|
17 |
if [ -w "$fname" ]; then |
21 |
#einfo "chpax -$flag ${fname}" |
18 |
#einfo "chpax $flags $fname" |
22 |
if [ -w ${fname} ]; then |
19 |
/sbin/chpax -$flag ${fname} |
23 |
einfo "$CHPAX -$flag ${fname}" |
20 |
[ $? != 0 ] && eerror "error: chpax -$flag ${fname}" |
24 |
$CHPAX -$flag ${fname} |
|
|
25 |
[ $? != 0 ] && eerror "error: $CHPAX -$flag ${fname}" |
21 |
fi |
26 |
fi |
22 |
} |
27 |
} |
23 |
|
28 |
|
|
|
29 |
fix_exempts() { |
30 |
#need to do this for foo{,bar,baz} expressions to work. |
31 |
PAGEEXEC_EXEMPT=`eval echo $PAGEEXEC_EXEMPT` |
32 |
TRAMPOLINE_EXEMPT=`eval echo $TRAMPOLINE_EXEMPT` |
33 |
RANDMMAP_EXEMPT=`eval echo $RANDMMAP_EXEMPT` |
34 |
MPROTECT_EXEMPT=`eval echo $MPROTECT_EXEMPT` |
35 |
SEGMEXEC_EXEMPT=`eval echo $SEGMEXEC_EXEMPT` |
36 |
RANDEXEC_EXEMPT=`eval echo $RANDEXEC_EXEMPT` |
37 |
} |
38 |
|
24 |
start() { |
39 |
start() { |
25 |
checkconfig || return 1 |
40 |
checkconfig || return 1 |
26 |
|
41 |
|
|
|
42 |
fix_exempts |
43 |
|
27 |
for p in $PAGEEXEC_EXEMPT; do chpax_flag p ${p} ;done |
44 |
for p in $PAGEEXEC_EXEMPT; do chpax_flag p ${p} ;done |
28 |
for e in $TRAMPOLINE_EXEMPT; do chpax_flag e ${e} ;done |
45 |
for e in $TRAMPOLINE_EXEMPT; do chpax_flag e ${e} ;done |
29 |
for r in $RANDMMAP_EXEMPT; do chpax_flag r ${r} ;done |
46 |
for r in $RANDMMAP_EXEMPT; do chpax_flag r ${r} ;done |
Lines 38-43
stop() {
Link Here
|
38 |
checkconfig || return 1 |
55 |
checkconfig || return 1 |
39 |
|
56 |
|
40 |
[ "$ZERO_FLAG_MASK" = "yes" ] || return 0 |
57 |
[ "$ZERO_FLAG_MASK" = "yes" ] || return 0 |
|
|
58 |
fix_exempts |
41 |
einfo "chpax zero flag masking" |
59 |
einfo "chpax zero flag masking" |
42 |
for p in $PAGEEXEC_EXEMPT; do chpax_flag z ${p} ;done |
60 |
for p in $PAGEEXEC_EXEMPT; do chpax_flag z ${p} ;done |
43 |
for e in $TRAMPOLINE_EXEMPT; do chpax_flag z ${e} ;done |
61 |
for e in $TRAMPOLINE_EXEMPT; do chpax_flag z ${e} ;done |