Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 40665 | Differences between
and this patch

Collapse All | Expand All

(-)/usr/portage/sys-apps/chpax/files/pax-init.d (-5 / +23 lines)
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

Return to bug 40665