#!/bin/sh # Check decoding of SPARC-specific kern_features syscall. . "${srcdir=.}/scno_tampering.sh" run_prog ../kern_features > /dev/null prog="$args" fault_args='-a16 -e trace=kern_features -e inject=kern_features:retval=' test_run_rval() { local run rval run="$1"; shift rval="$1"; shift run_strace $fault_args$rval $prog $run > "$EXP" match_diff "$LOG" "$EXP" } test_run_rval 0 0 test_run_rval 1 1 test_run_rval 2 2 test_run_rval 3 2147483646 # 0x7ffffffe test_run_rval 4 2147483647 # 0x7fffffff exit 0 # injecting retval < 0 not supported yet case "$SIZEOF_KERNEL_LONG_T" in 4) test_run_rval 5 3735943886 # 0xdeadface test_run_rval 6 4294967295 # 0xffffffff ;; 8) test_run_rval 5 13464652301225294542 # 0xbadc0deddeadface test_run_rval 6 18446744073709551615 # 0xffffffffffffffff ;; esac