summaryrefslogtreecommitdiff
path: root/debian/patches/privmode.dpatch
blob: eb9abf2c49f74bd78b14bb50295662b10f51462d (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
#! /bin/sh -e

if [ $# -eq 3 -a "$2" = '-d' ]; then
    pdir="-d $3"
elif [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;;
    -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
    *)
	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
	exit 1
esac
exit 0

# DP: XXX missing description
# DP: 
# DP: Comment from Chet Ramey <chet@nike.ins.cwru.edu>:
# DP: 
# DP: Nope.  This will allow setuid scripts if not called as `sh' and not 
# DP: called with the -p option.  I won't install this. 
 

diff -urb bash.orig/shell.c bash/shell.c
--- bash.orig/shell.c	2003-06-03 19:50:35.000000000 +0200
+++ bash/shell.c	2003-09-28 00:26:28.000000000 +0200
@@ -447,7 +447,7 @@
   if (dump_translatable_strings)
     read_but_dont_execute = 1;
 
-  if (running_setuid && privileged_mode == 0)
+  if (running_setuid && privileged_mode == 0 && act_like_sh == 0)
     disable_priv_mode ();
 
   /* Need to get the argument to a -c option processed in the