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
| #!/bin/sh
| # $OpenBSD: scp-ssh-wrapper.sh,v 1.3 2014/01/26 10:49:17 djm Exp $
| # Placed in the Public Domain.
|
| printname () {
| NAME=$1
| save_IFS=$IFS
| IFS=/
| set -- `echo "$NAME"`
| IFS="$save_IFS"
| while [ $# -ge 1 ] ; do
| if [ "x$1" != "x" ]; then
| echo "D0755 0 $1"
| fi
| shift;
| done
| }
|
| # Discard all but last argument. We use arg later.
| while test "x$1" != "x"; do
| arg="$1"
| shift
| done
|
| BAD="../../../../../../../../../../../../../${DIR}/dotpathdir"
|
| case "$SCPTESTMODE" in
| badserver_0)
| echo "D0755 0 /${DIR}/rootpathdir"
| echo "C755 2 rootpathfile"
| echo "X"
| ;;
| badserver_1)
| echo "D0755 0 $BAD"
| echo "C755 2 file"
| echo "X"
| ;;
| badserver_2)
| echo "D0755 0 $BAD"
| echo "C755 2 file"
| echo "X"
| ;;
| badserver_3)
| printname $BAD
| echo "C755 2 file"
| echo "X"
| ;;
| badserver_4)
| printname $BAD
| echo "D0755 0 .."
| echo "C755 2 file"
| echo "X"
| ;;
| *)
| set -- $arg
| shift
| exec $SCP "$@"
| ;;
| esac
|
|