1*cf84ac9aSAndroid Build Coastguard Worker#!/bin/sh 2*cf84ac9aSAndroid Build Coastguard Worker 3*cf84ac9aSAndroid Build Coastguard Worker# Check decoding of SPARC-specific kern_features syscall. 4*cf84ac9aSAndroid Build Coastguard Worker 5*cf84ac9aSAndroid Build Coastguard Worker. "${srcdir=.}/scno_tampering.sh" 6*cf84ac9aSAndroid Build Coastguard Worker 7*cf84ac9aSAndroid Build Coastguard Workerrun_prog ../kern_features > /dev/null 8*cf84ac9aSAndroid Build Coastguard Workerprog="$args" 9*cf84ac9aSAndroid Build Coastguard Workerfault_args='-a16 -e trace=kern_features -e inject=kern_features:retval=' 10*cf84ac9aSAndroid Build Coastguard Worker 11*cf84ac9aSAndroid Build Coastguard Workertest_run_rval() 12*cf84ac9aSAndroid Build Coastguard Worker{ 13*cf84ac9aSAndroid Build Coastguard Worker local run rval 14*cf84ac9aSAndroid Build Coastguard Worker run="$1"; shift 15*cf84ac9aSAndroid Build Coastguard Worker rval="$1"; shift 16*cf84ac9aSAndroid Build Coastguard Worker 17*cf84ac9aSAndroid Build Coastguard Worker run_strace $fault_args$rval $prog $run > "$EXP" 18*cf84ac9aSAndroid Build Coastguard Worker match_diff "$LOG" "$EXP" 19*cf84ac9aSAndroid Build Coastguard Worker} 20*cf84ac9aSAndroid Build Coastguard Worker 21*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 0 0 22*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 1 1 23*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 2 2 24*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 3 2147483646 # 0x7ffffffe 25*cf84ac9aSAndroid Build Coastguard Workertest_run_rval 4 2147483647 # 0x7fffffff 26*cf84ac9aSAndroid Build Coastguard Worker 27*cf84ac9aSAndroid Build Coastguard Workerexit 0 # injecting retval < 0 not supported yet 28*cf84ac9aSAndroid Build Coastguard Worker 29*cf84ac9aSAndroid Build Coastguard Workercase "$SIZEOF_KERNEL_LONG_T" in 30*cf84ac9aSAndroid Build Coastguard Worker4) 31*cf84ac9aSAndroid Build Coastguard Worker test_run_rval 5 3735943886 # 0xdeadface 32*cf84ac9aSAndroid Build Coastguard Worker test_run_rval 6 4294967295 # 0xffffffff 33*cf84ac9aSAndroid Build Coastguard Worker ;; 34*cf84ac9aSAndroid Build Coastguard Worker8) 35*cf84ac9aSAndroid Build Coastguard Worker test_run_rval 5 13464652301225294542 # 0xbadc0deddeadface 36*cf84ac9aSAndroid Build Coastguard Worker test_run_rval 6 18446744073709551615 # 0xffffffffffffffff 37*cf84ac9aSAndroid Build Coastguard Worker ;; 38*cf84ac9aSAndroid Build Coastguard Workeresac 39