1load_lib "lrzsz.exp" 2if $tracelevel then { 3 strace $tracelevel 4} 5 6# i would really like to throw that code out of zmodem ... 7# but then again: somebody might need it, and it's disabled by default. 8# so check first: is it _really_ disabled? 9 10#puts RES=[getenv ZMODEM_RESTRICTED] 11if {[string compare [getenv ZMODEM_RESTRICTED] ""] != 0} { 12 unsetenv ZMODEM_RESTRICTED 13} 14 15proc runcommand { name sz szopts rz rzopts expect_fail} { 16 global MYTEMP 17 global testdir 18 set magic XXXYYYZZZ 19 verbose "Testing $name" 1 20 catch "exec rm -f $testdir/command_tmp" 21 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \ 22 "\\\"echo $magic \\>$testdir/command_tmp\\\"" "mkdir,rmdir" dummy] 23 if {[file exists $testdir/command_tmp] == 0} { 24 set fails 1; 25 } 26 if {$fails == 0} { 27 catch "set dummy [grep $testdir/command_tmp $magic]" 28 if [string compare $magic $dummy] { 29 incr fails 30 send_log "grep fetch not $magic\n"; 31 } 32 } else { 33 send_log "call failed\n"; 34 } 35 if [string compare $expect_fail "OK"] { 36 if {$fails > 0} { 37 set fails 0; 38 } else { 39 set fails 1; 40 } 41 } 42 if {$fails == 0} { 43 pass "$name" 44 } else { 45 fail "$name" 46 } 47} 48 49runcommand command-disabled $objdir/../src/lsz "-q -c" \ 50 "$objdir/../src/lrz" "" FAIL 51runcommand command-enabled-restricted $objdir/../src/lsz "-q -c" \ 52 "$objdir/../src/lrz" "-C" FAIL 53runcommand command-enabled-unrestricted $objdir/../src/lsz "-q -c" \ 54 "$objdir/../src/lrz" "--unrestrict --allow-commands" OK 55# same for -i 56runcommand i-command-disabled $objdir/../src/lsz "-q -i" \ 57 "$objdir/../src/lrz" "" FAIL 58runcommand i-command-enabled-restricted $objdir/../src/lsz "-q -i" \ 59 "$objdir/../src/lrz" "-C" FAIL 60runcommand i-command-enabled-unrestricted $objdir/../src/lsz "-q -i" \ 61 "$objdir/../src/lrz" "--unrestrict --allow-commands" OK 62 63# basic tests done 64 65#set and unset ZMODEM_RESTRICTED. Should work. 66runcommand command-restricted-by-env "$objdir/../src/lsz" "-q -c" \ 67 "env ZMODEM_RESTRICTED=1 sh -c '$objdir/../src/lrz -qUC'" "" OK 68# "strace -vfs 128 -o /tmp/o2 env ZMODEM_RESTRICTED=1 sh -c \"$objdir/../src/lrz -qUC\"" "" OK 69# must not work. 70runcommand command-rbash-receiver "$objdir/../src/lsz" "-q -c" \ 71 "env SHELL=rbash sh -c '$objdir/../src/lrz -qUC'" "" FAIL 72# must not work. 73runcommand command-rbash-sender "env SHELL=rbash sh -c '$objdir/../src/lsz -qc'" "" \ 74 "$objdir/../src/lrz" "-qUC" FAIL 75 76