Skip to content

syscall argument sanitization for waitpid#1117

Open
celinehoang177 wants to merge 1 commit intomainfrom
syscall-argument-sanitization
Open

syscall argument sanitization for waitpid#1117
celinehoang177 wants to merge 1 commit intomainfrom
syscall-argument-sanitization

Conversation

@celinehoang177
Copy link
Copy Markdown
Contributor

@celinehoang177 celinehoang177 commented Apr 26, 2026

Sanitize waitpid syscall arguments (issue #612). Introduced a WaitpidChildSelector enum to interpret raw inputs at the entry point, ensuring special values (e.g., -1) are handled correctly before reaching core logic. This resolves bugs like #543, where -1 was incorrectly passed to get_cage().

@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total12
Success12
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.055857s4.307830s
Success
thread.cSuccessNone0.049364s4.399207s
Success
tls_test.cSuccessNone0.056328s4.429166s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases208
Number of Successes208
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.049313s0.144778s
Success
chdir_getcwd.cSuccessNone0.050544s0.099697s
Success
chmod.cSuccessNone0.055597s0.106047s
Success
clock_gettime_highlevel.cSuccessNone0.122056s0.302601s
Success
clock_gettime_simple.cSuccessNone0.045474s0.091203s
Success
cloexec.cSuccessNone0.054687s0.108469s
Success
close.cSuccessNone0.062517s0.122397s
Success
creat_access.cSuccessNone0.052976s0.098923s
Success
doubleclose.cSuccessNone0.046319s0.084817s
Success
dup.cSuccessNone0.047802s0.100263s
Success
dup2.cSuccessNone0.051685s0.096638s
Success
dup3.cSuccessNone0.051445s0.099229s
Success
dupwrite.cSuccessNone0.053015s0.095237s
Success
etc_conf.cSuccessNone0.048730s0.105293s
Success
fchdir.cSuccessNone0.055706s0.107891s
Success
fchmod.cSuccessNone0.054998s0.105370s
Success
fcntl.cSuccessNone0.052404s0.105513s
Success
fdatasync.cSuccessNone0.051620s0.093860s
Success
filetest.cSuccessNone0.052461s0.094945s
Success
filetest1000.cSuccessNone0.062331s0.112465s
Success
flock.cSuccessNone0.060667s0.126323s
Success
fstat.cSuccessNone0.054411s0.105574s
Success
fstatfs.cSuccessNone0.048421s0.094445s
Success
fsync.cSuccessNone0.052434s0.095655s
Success
ftruncate.cSuccessNone0.056425s0.220342s
Success
getcwd.cSuccessNone0.049879s0.091299s
Success
getpgid.cSuccessNone0.047429s0.088128s
Success
getrandom.cSuccessNone0.054097s0.101720s
Success
ioctl.cSuccessNone0.055125s0.102376s
Success
link.cSuccessNone0.055887s0.150654s
Success
locale_test.cSuccessNone0.064014s0.564837s
Success
lseek.cSuccessNone0.056738s0.209790s
Success
lstat.cSuccessNone0.056033s0.114231s
Success
mkdir_rmdir.cSuccessNone0.053176s0.097620s
Success
mkfifo_test.cSuccessNone0.057653s0.136111s
Success
mknod.cSuccessNone0.052074s0.106899s
Success
nocancel_io.cSuccessNone0.055904s0.125253s
Success
open.cSuccessNone0.048249s0.089498s
Success
openat.cSuccessNone0.049054s0.096722s
Success
path_conversion_safety.cSuccessNone0.058695s0.124422s
Success
ppoll.cSuccessNone0.056004s0.108068s
Success
pread_pwrite.cSuccessNone0.051468s0.106284s
Success
preadv_pwritev.cSuccessNone0.055035s0.112614s
Success
printf.cSuccessNone0.045753s0.084410s
Success
prlimit64.cSuccessNone0.047080s0.091467s
Success
read.cSuccessNone0.053781s0.106802s
Success
readbytes.cSuccessNone0.050377s0.092658s
Success
readdir_basic.cSuccessNone0.056353s0.115487s
Success
readlink.cSuccessNone0.052631s0.103080s
Success
readlinkat.cSuccessNone0.054872s0.110159s
Success
readv_writev_test.cSuccessNone0.054158s0.111103s
Success
rename.cSuccessNone0.055295s0.102540s
Success
sc-writev.cSuccessNone0.051231s0.098778s
Success
stat.cSuccessNone0.054070s0.103420s
Success
statfs.cSuccessNone0.048332s0.093582s
Success
symlink.cSuccessNone0.054892s0.130050s
Success
sync_file_range.cSuccessNone0.051621s0.095648s
Success
timespec_time_t_compat.cSuccessNone0.050649s0.092102s
Success
truncate.cSuccessNone0.054204s0.109665s
Success
unlink.cSuccessNone0.056317s0.144330s
Success
unlinkat.cSuccessNone0.054460s0.115289s
Success
write.cSuccessNone0.048289s0.087746s
Success
writeloop.cSuccessNone0.055331s0.095791s
Success
writepartial.cSuccessNone0.053572s0.094433s
Success
writev.cSuccessNone0.054509s0.105225s
Success
Math Tests
math_link_smoke.cSuccessNone0.057502s0.093342s
Success
math_tests.cSuccessNone0.060782s0.111835s
Success
Memory Tests
brk.cSuccessNone0.051047s0.097531s
Success
fork_large_memory.cSuccessNone0.083081s0.336646s
Success
malloc.cSuccessNone0.049044s0.088693s
Success
malloc_large.cSuccessNone0.049866s0.094567s
Success
memcpy.cSuccessNone0.048510s0.089274s
Success
memory_error_test.cSuccessNone0.054470s0.128444s
Success
mmap.cSuccessNone0.045886s0.089855s
Success
mmap_aligned.cSuccessNone0.047882s0.105854s
Success
mmap_complicated.cSuccessNone0.053352s0.108472s
Success
mmap_file.cSuccessNone0.053528s0.100969s
Success
mmap_shared.cSuccessNone0.052065s0.102186s
Success
mmaptest.cSuccessNone0.050280s0.094772s
Success
mprotect.cSuccessNone0.047923s0.089333s
Success
mprotect_boundary.cSuccessNone0.048159s0.105679s
Success
mprotect_end_region.cSuccessNone0.046865s0.097020s
Success
mprotect_middle_region.cSuccessNone0.047078s0.100269s
Success
mprotect_multiple_times.cSuccessNone0.047160s0.100217s
Success
mprotect_same_value.cSuccessNone0.047324s0.095276s
Success
mprotect_spanning_regions.cSuccessNone0.047973s0.113567s
Success
munmap_adjacent_shm.cSuccessNone0.049731s0.103271s
Success
sbrk.cSuccessNone0.048955s0.092094s
Success
segfault.cSuccessNone0.054168s0.114634s
Success
shm.cSuccessNone0.052790s0.108514s
Success
shmtest.cSuccessNone0.047897s0.096100s
Success
thread_malloc_sequential.cSuccessNone0.054759s0.118102s
Success
vtable.cSuccessNone0.058840s0.111256s
Success
Networking Tests
accept4.cSuccessNone0.057923s0.112841s
Success
dns_resolve_test.cSuccessNone0.052795s0.099794s
Success
dnstest.cSuccessNone0.053188s0.108770s
Success
epoll_edge_triggered.cSuccessNone0.210670s0.447025s
Success
epollcreate1.cSuccessNone0.054725s0.109999s
Success
error_handling_net.cSuccessNone0.061083s0.213186s
Success
getaddrinfo_test.cSuccessNone0.056550s0.142756s
Success
getaddrinfo_unspec.cSuccessNone0.072181s0.109912s
Success
gethostname.cSuccessNone0.048448s0.088144s
Success
getifaddrs.cSuccessNone0.054828s0.099992s
Success
getsockname.cSuccessNone0.058050s0.102482s
Success
getsockopt.cSuccessNone0.056745s0.155648s
Success
ipv6_basic.cSuccessNone0.057971s0.144786s
Success
makepipe.cSuccessNone0.047429s0.087833s
Success
nonblocking_eagain.cSuccessNone0.058496s0.159175s
Success
pipe.cSuccessNone0.055856s0.107877s
Success
pipe2.cSuccessNone0.055394s0.101611s
Success
pipeinput.cSuccessNone0.056702s0.120070s
Success
pipeinput2.cSuccessNone0.057447s0.119799s
Success
pipeonestring.cSuccessNone0.056661s0.118397s
Success
pipepong.cSuccessNone0.055643s0.119806s
Success
pipewrite.cSuccessNone0.050198s0.100218s
Success
poll.cSuccessNone0.053982s0.095500s
Success
recvfrom-sendto.cSuccessNone0.055196s0.107971s
Success
sendmsg_recvmsg_test.cSuccessNone0.054485s0.108646s
Success
serverclient.cSuccessNone0.054966s0.104800s
Success
shutdown.cSuccessNone0.056819s0.105293s
Success
shutdown_fork.cSuccessNone0.054992s0.108038s
Success
simple-select.cSuccessNone0.056245s0.120217s
Success
simple_epoll.cSuccessNone0.054309s0.104451s
Success
socket.cSuccessNone0.052952s0.097646s
Success
socket_cloexec.cSuccessNone0.053171s0.095600s
Success
socket_options_advanced.cSuccessNone0.059761s0.177361s
Success
socketepoll.cSuccessNone0.053050s0.097683s
Success
socketpair.cSuccessNone0.052433s0.103424s
Success
socketselect.cSuccessNone0.053565s0.104008s
Success
udp_send_recv.cSuccessNone0.160759s0.259482s
Success
uds-getsockname.cSuccessNone0.054465s0.097992s
Success
uds-nb-select.cSuccessNone2.062454s2.151921s
Success
uds-serverclient.cSuccessNone0.058009s0.126589s
Success
uds-socketselect.cSuccessNone0.054609s0.102853s
Success
writev_socket.cSuccessNone0.057773s0.140335s
Success
Process Tests
barrier_test.cSuccessNone0.052380s0.102592s
Success
chain_thread.cSuccessNone1.054893s1.108355s
Success
ctor_syscall_test.cSuccessNone0.045101s0.087952s
Success
cxa_atexit_test.cSuccessNone0.051352s0.091976s
Success
execve_shebang.cSuccessNone0.053575s0.098551s
Success
exit.cSuccessNone0.051425s0.090226s
Success
exit_failure.cSuccessNone0.052846s0.098625s
Success
exit_group_thread.cSuccessNone0.055182s0.107358s
Success
flockfile_test.cSuccessNone0.054341s0.112104s
Success
fork2malloc.cSuccessNone0.054329s0.104932s
Success
fork_select.cSuccessNone0.053121s0.112205s
Success
fork_simple.cSuccessNone0.052120s0.098334s
Success
fork_syscall.cSuccessNone0.058089s0.225758s
Success
fork_tls_ctype.cSuccessNone0.071068s0.146273s
Success
forkandopen.cSuccessNone0.054813s0.117108s
Success
forkdup.cSuccessNone0.057610s0.105833s
Success
forkexecuid.cSuccessNone0.052829s0.115297s
Success
forkexecv-arg.cSuccessNone0.052899s0.103553s
Success
forkexecv.cSuccessNone0.050709s0.100714s
Success
forkfiles.cSuccessNone0.054482s0.110888s
Success
forkmalloc.cSuccessNone0.054387s0.102726s
Success
forknodup.cSuccessNone0.055007s0.112508s
Success
function-ptr.cSuccessNone0.049015s0.091213s
Success
getegid_syscall.cSuccessNone0.054806s0.188960s
Success
getgid_syscall.cSuccessNone0.054503s0.192934s
Success
getpid.cSuccessNone0.047931s0.088326s
Success
getpid_syscall.cSuccessNone0.056199s0.207851s
Success
getppid.cSuccessNone0.054553s0.101484s
Success
getppid_syscall.cSuccessNone0.056824s0.171060s
Success
getuid.cSuccessNone0.054456s0.097252s
Success
getuid_syscall.cSuccessNone0.053476s0.137363s
Success
hello-arg.cSuccessNone0.045635s0.086892s
Success
hello.cSuccessNone0.046135s0.084644s
Success
longjmp.cSuccessNone0.047291s0.091531s
Success
mutex.cSuccessNone2.056321s2.105971s
Success
printf_deadlock_smoke.cSuccessNone0.061198s0.128654s
Success
printf_thread_test.cSuccessNone0.053870s0.107625s
Success
sem_forks.cSuccessNone0.057865s0.116161s
Success
setsid.cSuccessNone0.047729s0.088282s
Success
template.cSuccessNone0.053478s0.119364s
Success
test_exec_nofork.cSuccessNone0.052442s0.100249s
Success
test_unlink_open_file.cSuccessNone0.049915s0.090381s
Success
thread-guard.cSuccessNone0.052320s0.102182s
Success
thread-test.cSuccessNone0.049598s0.093964s
Success
thread.cSuccessNone0.049405s0.093639s
Success
thread_cageid_race.cSuccessNone0.049854s0.112490s
Success
tls_test.cSuccessNone0.052341s0.104426s
Success
uname.cSuccessNone0.048655s0.088807s
Success
wait.cSuccessNone2.052085s2.102446s
Success
waitpid_anychild.cSuccessNone0.055814s0.101585s
Success
waitpid_syscall.cSuccessNone1.054407s1.131600s
Success
waitpid_wnohang.cSuccessNone0.054280s0.103485s
Success
Signal Tests
alarm.cSuccessNone7.053233s7.128407s
Success
eintr_fork_signal.cSuccessNone1.056238s1.112929s
Success
kill.cSuccessNone1.053771s1.105028s
Success
setitimer.cSuccessNone7.053976s7.132327s
Success
sigalrm.cSuccessNone2.053771s2.110221s
Success
sigaltstack.cSuccessNone0.055131s0.107946s
Success
sigchld.cSuccessNone1.055302s1.101344s
Success
signal-fork.cSuccessNone4.055613s4.106181s
Success
signal-simple.cSuccessNone0.054691s0.098522s
Success
signal_SIGCHLD.cSuccessNone0.052594s0.104889s
Success
signal_fork.cSuccessNone0.050963s0.106624s
Success
signal_int_ignored.cSuccessNone2.054640s2.104614s
Success
signal_kill_cleanup.cSuccessNone1.052188s1.102313s
Success
signal_procmask.cSuccessNone0.050257s0.098992s
Success
signal_read_interrupt.cSuccessNone0.558174s0.612468s
Success
signal_recursive.cSuccessNone0.049080s0.099790s
Success
signal_sa_mask.cSuccessNone0.048610s0.094261s
Success
signal_select_interrupt.cSuccessNone0.557666s0.614452s
Success
signal_write_interrupt.cSuccessNone1.056532s1.112527s
Success
sigpipe.cSuccessNone1.056043s1.110397s
Success
sigprocmask.cSuccessNone1.053710s1.102018s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.046509s0.087605s
Success
Memory Tests
mmap-negative1.cSuccessNone0.129138s0.096387s
Success
mmap-negative2.cSuccessNone0.113053s0.107409s
Success
Signal Tests
signal_resethand.cSuccessNone1.054684s1.102187s
Success

@celinehoang177 celinehoang177 force-pushed the syscall-argument-sanitization branch from 1bc21a4 to b00a357 Compare April 26, 2026 18:33
@github-actions
Copy link
Copy Markdown
Contributor

End-to-End Test Report

Test Preview

Unified Test Report

grate harness

MetricValue
Total12
Success12
Failures0
Compile Failures0
Runtime Failures0
Timeout Failures0
Missing Pair Failures0

Cases

TestStatusError TypeOutput
concurrent-request/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Cage | geteuid] PASS: 1000000 calls returned 10
[Grate|geteuid] PASS

STDERR:

concurrent-request/race-test_grate.cSuccess
STDOUT:
pass

STDERR:

concurrent-request/thread_race_grate.cSuccess
STDOUT:
[thread_race] Registering handler for cage 2 in grate 1 with fn ptr addr: 3
[thread_race] PASS: 20 threads x 100000 calls returned 10
[thread_race] PASS

STDERR:

interposing-calls/interpose-exec_grate.cSuccess
STDOUT:
[Grate|interpose-exec] Registering exec handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
[Grate|interpose-exec] Handling function ptr: 3 from cage: 1
[Grate|interpose-exec] In exec_grate 1 handler for cage: 1
Exec successful, argv[1]: --execd
[Grate|interpose-exec] PASS

STDERR:

interposing-calls/interpose-exit_grate.cSuccess
STDOUT:
[Grate|interpose-exit] Registering exit handler for cage 2 in grate 1 with fn ptr addr: 3
Exiting...

[Grate|interpose-exit] PASS

STDERR:

interposing-calls/interpose-fork_grate.cSuccess
STDOUT:
[Grate|interpose-fork] Registering fork handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-fork] Handling function ptr: 3 from cage: 1
[Grate|interpose-fork] In fork_grate 1 handler for cage: 1
[Grate|interpose-fork] PASS

STDERR:

interposing-calls/interpose-mmap_grate.cSuccess
STDOUT:
[Grate|interpose-mmap] Registering mmap handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
[Grate|interpose-mmap] Handling function ptr: 3 from cage: 1
[Grate|interpose-mmap] In mmap_grate 1 handler for cage: 1
mmap test: PASS
[Grate|interpose-mmap] PASS

STDERR:

interposing-calls/interpose-register_grate.cSuccess
STDOUT:
[Grate|interpose-register] Registering register_handler for cage 2 in grate 1 with fn ptr addr: 4
[cage] registering 107. grateid: 2 cageid: 3
[Grate|interpose-register] Handling function ptr: 4 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|geteuid] Registering geteuid handler for cage 1 in grate 1 with fn ptr addr: 3
[Grate|interpose-register] Handling function ptr: 3 from cage: 1
[Grate|interpose-register] In register_grate 1 handler for cage: 1
[Grate|interpose-register] PASS

STDERR:

multi-register_grate.cSuccess
STDOUT:
[Grate|multi-register_grate] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|multi-register_grate] Registering getuid handler for cage 2 in grate 1 with fn ptr addr: 4
[Grate|multi-register_grate] Handling function ptr: 3 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Grate|multi-register_grate] Handling function ptr: 4 from cage: 1
[Grate|multi-register_grate] In multi-register_grate 1 handler for cage: 1
[Cage | multi-register] PASS: geteuid=10, getuid=20
[Grate|multi-register] PASS

STDERR:

simple-tests/cpdata_grate.cSuccess
STDOUT:
[Grate|open] intercepts open call: thiscage=1, arg1cage=2
[Grate|open] copied pathname: random
[cage] fd=10

STDERR:

simple-tests/diff-cage-args_grate.cSuccess
STDOUT:
[Grate|diff-cage-args] Handling function ptr: 3 from cage: 1
[Grate|diff-cage-args] In open_grate 1 handler for cage: 1
Hello world. FD=-1
[Grate|diff-cage-args] Handling function ptr: 4 from cage: 1
Goodbye world! ret=4321 buf=helloworld
[Grate|diff-cage-args] PASS

STDERR:

simple-tests/geteuid_grate.cSuccess
STDOUT:
[Grate|geteuid] Registering geteuid handler for cage 2 in grate 1 with fn ptr addr: 3
[Grate|geteuid] Handling function ptr: 3 from cage: 1
[Grate|geteuid] In geteuid_grate 1 handler for cage: 1
[Cage | geteuid] PASS: geteuid ret = 10
[Grate|geteuid] PASS

STDERR:

static harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases3
Number of Successes3
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Static Tests
fork_simple.cSuccessNone0.046763s4.322456s
Success
thread.cSuccessNone0.040089s4.373701s
Success
tls_test.cSuccessNone0.055813s4.356865s
Success
Fail Tests

Summary

MetricCount
Total Test Cases0
Number of Successes0
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

wasm harness

Test Report

Deterministic Tests

Summary

MetricCount
Total Test Cases208
Number of Successes208
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
File Tests
chartests.cSuccessNone0.038969s0.121744s
Success
chdir_getcwd.cSuccessNone0.040558s0.082145s
Success
chmod.cSuccessNone0.044847s0.088270s
Success
clock_gettime_highlevel.cSuccessNone0.275300s0.302018s
Success
clock_gettime_simple.cSuccessNone0.035530s0.072871s
Success
cloexec.cSuccessNone0.045195s0.091256s
Success
close.cSuccessNone0.044814s0.095305s
Success
creat_access.cSuccessNone0.043801s0.082761s
Success
doubleclose.cSuccessNone0.037397s0.070402s
Success
dup.cSuccessNone0.037149s0.081140s
Success
dup2.cSuccessNone0.041669s0.079393s
Success
dup3.cSuccessNone0.040190s0.081336s
Success
dupwrite.cSuccessNone0.044305s0.080992s
Success
etc_conf.cSuccessNone0.037919s0.087709s
Success
fchdir.cSuccessNone0.045080s0.089158s
Success
fchmod.cSuccessNone0.043689s0.087833s
Success
fcntl.cSuccessNone0.042240s0.087618s
Success
fdatasync.cSuccessNone0.042185s0.076892s
Success
filetest.cSuccessNone0.041569s0.077703s
Success
filetest1000.cSuccessNone0.045122s0.088447s
Success
flock.cSuccessNone0.052621s0.109395s
Success
fstat.cSuccessNone0.043589s0.087794s
Success
fstatfs.cSuccessNone0.038861s0.078064s
Success
fsync.cSuccessNone0.041900s0.079961s
Success
ftruncate.cSuccessNone0.045595s0.188182s
Success
getcwd.cSuccessNone0.039569s0.075111s
Success
getpgid.cSuccessNone0.037390s0.070878s
Success
getrandom.cSuccessNone0.042911s0.083419s
Success
ioctl.cSuccessNone0.045070s0.085690s
Success
link.cSuccessNone0.046120s0.130906s
Success
locale_test.cSuccessNone0.053851s0.512214s
Success
lseek.cSuccessNone0.047183s0.184986s
Success
lstat.cSuccessNone0.046617s0.095092s
Success
mkdir_rmdir.cSuccessNone0.043544s0.080764s
Success
mkfifo_test.cSuccessNone0.046650s0.114129s
Success
mknod.cSuccessNone0.042265s0.088820s
Success
nocancel_io.cSuccessNone0.045890s0.106383s
Success
open.cSuccessNone0.039540s0.074242s
Success
openat.cSuccessNone0.039572s0.079838s
Success
path_conversion_safety.cSuccessNone0.046139s0.103035s
Success
ppoll.cSuccessNone0.046997s0.091310s
Success
pread_pwrite.cSuccessNone0.040138s0.086836s
Success
preadv_pwritev.cSuccessNone0.046108s0.095275s
Success
printf.cSuccessNone0.036367s0.069572s
Success
prlimit64.cSuccessNone0.037316s0.075183s
Success
read.cSuccessNone0.044049s0.087720s
Success
readbytes.cSuccessNone0.038755s0.075656s
Success
readdir_basic.cSuccessNone0.045308s0.097278s
Success
readlink.cSuccessNone0.041885s0.084360s
Success
readlinkat.cSuccessNone0.044695s0.092264s
Success
readv_writev_test.cSuccessNone0.043581s0.090427s
Success
rename.cSuccessNone0.044384s0.094544s
Success
sc-writev.cSuccessNone0.041484s0.083336s
Success
stat.cSuccessNone0.043259s0.086050s
Success
statfs.cSuccessNone0.037616s0.076090s
Success
symlink.cSuccessNone0.044288s0.108029s
Success
sync_file_range.cSuccessNone0.040792s0.077843s
Success
timespec_time_t_compat.cSuccessNone0.039442s0.075108s
Success
truncate.cSuccessNone0.044088s0.091437s
Success
unlink.cSuccessNone0.045233s0.119421s
Success
unlinkat.cSuccessNone0.044383s0.095936s
Success
write.cSuccessNone0.039032s0.070834s
Success
writeloop.cSuccessNone0.045756s0.083190s
Success
writepartial.cSuccessNone0.042721s0.076181s
Success
writev.cSuccessNone0.043645s0.087625s
Success
Math Tests
math_link_smoke.cSuccessNone0.047299s0.077653s
Success
math_tests.cSuccessNone0.052729s0.095779s
Success
Memory Tests
brk.cSuccessNone0.040089s0.077677s
Success
fork_large_memory.cSuccessNone0.071254s0.309234s
Success
malloc.cSuccessNone0.040130s0.072271s
Success
malloc_large.cSuccessNone0.039967s0.077070s
Success
memcpy.cSuccessNone0.038054s0.071602s
Success
memory_error_test.cSuccessNone0.044291s0.108553s
Success
mmap.cSuccessNone0.036379s0.074562s
Success
mmap_aligned.cSuccessNone0.037781s0.090031s
Success
mmap_complicated.cSuccessNone0.044052s0.091563s
Success
mmap_file.cSuccessNone0.042686s0.080498s
Success
mmap_shared.cSuccessNone0.042580s0.086290s
Success
mmaptest.cSuccessNone0.038570s0.078013s
Success
mprotect.cSuccessNone0.037310s0.073070s
Success
mprotect_boundary.cSuccessNone0.038264s0.088532s
Success
mprotect_end_region.cSuccessNone0.037086s0.080245s
Success
mprotect_middle_region.cSuccessNone0.037488s0.083280s
Success
mprotect_multiple_times.cSuccessNone0.036435s0.080362s
Success
mprotect_same_value.cSuccessNone0.036983s0.078395s
Success
mprotect_spanning_regions.cSuccessNone0.037101s0.092954s
Success
munmap_adjacent_shm.cSuccessNone0.038933s0.084416s
Success
sbrk.cSuccessNone0.038442s0.073937s
Success
segfault.cSuccessNone0.043247s0.097888s
Success
shm.cSuccessNone0.042216s0.090499s
Success
shmtest.cSuccessNone0.038498s0.078954s
Success
thread_malloc_sequential.cSuccessNone0.045280s0.098428s
Success
vtable.cSuccessNone0.047566s0.090629s
Success
Networking Tests
accept4.cSuccessNone0.047665s0.094671s
Success
dns_resolve_test.cSuccessNone0.042455s0.083104s
Success
dnstest.cSuccessNone0.044323s0.093355s
Success
epoll_edge_triggered.cSuccessNone0.200099s0.416037s
Success
epollcreate1.cSuccessNone0.044735s0.091968s
Success
error_handling_net.cSuccessNone0.050857s0.187556s
Success
getaddrinfo_test.cSuccessNone0.045956s0.121024s
Success
getaddrinfo_unspec.cSuccessNone0.046293s0.149035s
Success
gethostname.cSuccessNone0.038318s0.071975s
Success
getifaddrs.cSuccessNone0.044464s0.082873s
Success
getsockname.cSuccessNone0.049944s0.086122s
Success
getsockopt.cSuccessNone0.047144s0.129586s
Success
ipv6_basic.cSuccessNone0.047258s0.121325s
Success
makepipe.cSuccessNone0.038638s0.071455s
Success
nonblocking_eagain.cSuccessNone0.047058s0.137751s
Success
pipe.cSuccessNone0.046647s0.091310s
Success
pipe2.cSuccessNone0.045479s0.085540s
Success
pipeinput.cSuccessNone0.046233s0.101385s
Success
pipeinput2.cSuccessNone0.046203s0.101637s
Success
pipeonestring.cSuccessNone0.047010s0.102935s
Success
pipepong.cSuccessNone0.045726s0.102756s
Success
pipewrite.cSuccessNone0.041172s0.087302s
Success
poll.cSuccessNone0.045423s0.080822s
Success
recvfrom-sendto.cSuccessNone0.044935s0.090107s
Success
sendmsg_recvmsg_test.cSuccessNone0.045628s0.092863s
Success
serverclient.cSuccessNone0.044610s0.088731s
Success
shutdown.cSuccessNone0.046738s0.088319s
Success
shutdown_fork.cSuccessNone0.044891s0.092459s
Success
simple-select.cSuccessNone0.046080s0.103664s
Success
simple_epoll.cSuccessNone0.045484s0.087805s
Success
socket.cSuccessNone0.043089s0.079905s
Success
socket_cloexec.cSuccessNone0.042645s0.080285s
Success
socket_options_advanced.cSuccessNone0.048489s0.149602s
Success
socketepoll.cSuccessNone0.043147s0.081858s
Success
socketpair.cSuccessNone0.043557s0.088818s
Success
socketselect.cSuccessNone0.043017s0.086567s
Success
udp_send_recv.cSuccessNone0.149462s0.237263s
Success
uds-getsockname.cSuccessNone0.044323s0.081385s
Success
uds-nb-select.cSuccessNone2.051606s2.128989s
Success
uds-serverclient.cSuccessNone0.047064s0.109463s
Success
uds-socketselect.cSuccessNone0.044431s0.086636s
Success
writev_socket.cSuccessNone0.047074s0.117831s
Success
Process Tests
barrier_test.cSuccessNone0.044585s0.087363s
Success
chain_thread.cSuccessNone1.046266s1.093519s
Success
ctor_syscall_test.cSuccessNone0.037424s0.072466s
Success
cxa_atexit_test.cSuccessNone0.041509s0.076965s
Success
execve_shebang.cSuccessNone0.044083s0.082639s
Success
exit.cSuccessNone0.042575s0.077298s
Success
exit_failure.cSuccessNone0.043240s0.085986s
Success
exit_group_thread.cSuccessNone0.045638s0.091972s
Success
flockfile_test.cSuccessNone0.043405s0.091621s
Success
fork2malloc.cSuccessNone0.046716s0.092666s
Success
fork_select.cSuccessNone0.042476s0.093508s
Success
fork_simple.cSuccessNone0.041940s0.082632s
Success
fork_syscall.cSuccessNone0.047059s0.228235s
Success
fork_tls_ctype.cSuccessNone0.046886s0.120125s
Success
forkandopen.cSuccessNone0.045193s0.099881s
Success
forkdup.cSuccessNone0.049824s0.091146s
Success
forkexecuid.cSuccessNone0.042087s0.096291s
Success
forkexecv-arg.cSuccessNone0.042599s0.086421s
Success
forkexecv.cSuccessNone0.041795s0.083952s
Success
forkfiles.cSuccessNone0.044633s0.094724s
Success
forkmalloc.cSuccessNone0.045726s0.088839s
Success
forknodup.cSuccessNone0.045888s0.097046s
Success
function-ptr.cSuccessNone0.039551s0.076438s
Success
getegid_syscall.cSuccessNone0.044979s0.197180s
Success
getgid_syscall.cSuccessNone0.045101s0.207065s
Success
getpid.cSuccessNone0.038175s0.072673s
Success
getpid_syscall.cSuccessNone0.045992s0.219856s
Success
getppid.cSuccessNone0.043891s0.087547s
Success
getppid_syscall.cSuccessNone0.047423s0.174414s
Success
getuid.cSuccessNone0.044480s0.081202s
Success
getuid_syscall.cSuccessNone0.044022s0.131320s
Success
hello-arg.cSuccessNone0.037658s0.074634s
Success
hello.cSuccessNone0.037162s0.071097s
Success
longjmp.cSuccessNone0.036312s0.074085s
Success
mutex.cSuccessNone2.047701s2.090260s
Success
printf_deadlock_smoke.cSuccessNone0.052245s0.109892s
Success
printf_thread_test.cSuccessNone0.042043s0.088083s
Success
sem_forks.cSuccessNone0.048160s0.102866s
Success
setsid.cSuccessNone0.038976s0.073461s
Success
template.cSuccessNone0.044434s0.105080s
Success
test_exec_nofork.cSuccessNone0.042855s0.086340s
Success
test_unlink_open_file.cSuccessNone0.040963s0.075737s
Success
thread-guard.cSuccessNone0.041491s0.082901s
Success
thread-test.cSuccessNone0.040304s0.081144s
Success
thread.cSuccessNone0.040879s0.078607s
Success
thread_cageid_race.cSuccessNone0.041053s0.097939s
Success
tls_test.cSuccessNone0.043489s0.088319s
Success
uname.cSuccessNone0.039823s0.073859s
Success
wait.cSuccessNone2.041827s2.088800s
Success
waitpid_anychild.cSuccessNone0.044369s0.087334s
Success
waitpid_syscall.cSuccessNone1.045602s1.125987s
Success
waitpid_wnohang.cSuccessNone0.045985s0.088435s
Success
Signal Tests
alarm.cSuccessNone7.042225s7.110718s
Success
eintr_fork_signal.cSuccessNone1.044075s1.095330s
Success
kill.cSuccessNone1.045446s1.088058s
Success
setitimer.cSuccessNone7.049221s7.110231s
Success
sigalrm.cSuccessNone2.043029s2.092761s
Success
sigaltstack.cSuccessNone0.044942s0.088010s
Success
sigchld.cSuccessNone1.045392s1.087987s
Success
signal-fork.cSuccessNone4.045515s4.090676s
Success
signal-simple.cSuccessNone0.044244s0.081679s
Success
signal_SIGCHLD.cSuccessNone0.042752s0.086993s
Success
signal_fork.cSuccessNone0.041352s0.090485s
Success
signal_int_ignored.cSuccessNone2.043019s2.090202s
Success
signal_kill_cleanup.cSuccessNone1.043154s1.085752s
Success
signal_procmask.cSuccessNone0.038663s0.079146s
Success
signal_read_interrupt.cSuccessNone0.546120s0.592675s
Success
signal_recursive.cSuccessNone0.040510s0.084730s
Success
signal_sa_mask.cSuccessNone0.038884s0.078595s
Success
signal_select_interrupt.cSuccessNone0.546851s0.597622s
Success
signal_write_interrupt.cSuccessNone1.046574s1.094751s
Success
sigpipe.cSuccessNone1.046347s1.092403s
Success
sigprocmask.cSuccessNone1.044811s1.084591s
Success
Fail Tests

Summary

MetricCount
Total Test Cases4
Number of Successes4
Number of Failures0
Number of Compilation Failure Native0
Number of Runtime Failure Native0
Number of Segmentation Fault Native0
Number of Timeout During Native0
Number of Lind Wasm Compile Failure0
Number of Lind Wasm Runtime Failure0
Number of Lind Wasm Segmentation Failure0
Number of Timeout During Lind Wasm run0
Number of Unknown Failure0
Number of C Compiler and Wasm Output mismatch0
Number of Fail Test: Native Succeeded (Should Fail)0
Number of Fail Test: Wasm Succeeded (Should Fail)0
Number of Fail Test: Both Native and Wasm Succeeded (Should Fail)0
Number of Fail Test: Native Compilation Failure (Should Succeed)0
Number of Fail Test: Wasm Compilation Failure (Should Succeed)0

Test Results by Category

Test CaseStatusError TypeNative TimeWasm TimeOutput
Dylink Tests
dlerror.cSuccessNone0.036916s0.072245s
Success
Memory Tests
mmap-negative1.cSuccessNone0.113125s0.074071s
Success
mmap-negative2.cSuccessNone0.087832s0.079440s
Success
Signal Tests
signal_resethand.cSuccessNone1.043293s1.087164s
Success

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant