summary refs log tree commit diff
path: root/ripple
AgeCommit message (Collapse)Author
2022-07-30ripple/minitrace: dump early memory mappingsedef
These are from right after exec(2), so they are all done by the kernel. Change-Id: Ic76aa9c40acac64462fa6ab5c33cabcee3e096e5
2022-07-29ripple/minitrace: log ~all syscalls to stdoutedef
Except for times(2), which is called incessantly by cc1. Change-Id: Ie98f022136f7b018a3fce706af194502dc4fe202
2022-07-29ripple/minitrace: support zero-arg syscallsedef
Change-Id: I5b29792ad80dd3f80a6f51db45bced09cdbdfd6a
2022-07-29ripple/minitrace: strictly verify fd argumentsedef
Change-Id: I9210105171314d036dc12a1b36ce01aaeeb2466d
2022-07-29ripple/minitrace: verify openat mode strictlyedef
Change-Id: I943054765b764416ebe031535067dd3631c2ddaf
2022-07-29ripple/minitrace: verify rt_sigaction sigsetsize strictlyedef
Change-Id: I053f3f261963d955b0e54b20e5cd42f81b3e6a57
2022-07-29ripple/minitrace: verify rt_sigaction signal strictlyedef
Change-Id: I9237b8740fea2b84174b77487fc42e9464a0b2fc
2022-07-29ripple/minitrace: verify access(2) mode strictlyedef
Change-Id: I5e9f300a6db5fd40b2d46679ae6e613c1352a899
2022-07-29ripple/minitrace: factor out libc_checkedef
Change-Id: I4feb931cbf98c852f975e1e68fd5e0ec8f0eecf4
2022-07-29ripple/minitrace: verify mmap/mprotect page alignmentedef
Change-Id: If0d0d68264a2395c7ee746b5bca0c794ca4e4d65
2022-07-29ripple/minitrace: implement and use SyscallArg for enumsedef
Change-Id: Ia06d73ee49881d5db2fc57545e8040ce3976a584
2022-07-29ripple/minitrace: use # instead of prefixing with 0xedef
Change-Id: Ie21b75abcfc3f3d0fe68d84d81e92914fc9a7c0c
2022-07-29ripple/minitrace: drop process arg to check_syscalledef
Change-Id: Iaf9905852fb8cef97340da149ada6e6e4c3b6d17
2022-07-29ripple/minitrace: verify newfstatat flags strictlyedef
Change-Id: Ia85d147d493e1d6fb5a67ff5240dc64b17afb1af
2022-07-29ripple/minitrace: replace read_mem_cstr calls with CString argumentsedef
Change-Id: Ib8aec16cfca88db69765e7fa25aeaf8ea240f18d
2022-07-29ripple/minitrace: interpret CString arguments to syscallsedef
Change-Id: Ib8ddefb7a969e5cfd7e891233d083670a0c72596
2022-07-29ripple/minitrace: don't impl Copy for SyscallEntryedef
We'd like to be able to have heap-allocated syscall data, which means we can't impl Copy. Change-Id: Ib40dcaf7f99baeaae0dae1153e80deae88d76978
2022-07-29ripple/minitrace: use inline variable style for format stringsedef
Change-Id: I6ed5bd5dffbf5706b718be4f15896b831b3d64f5
2022-07-29ripple/minitrace: match read_mem_cstr return value names to input namesedef
Change-Id: I93538f4fd3daa4065d70fa3d4d9f638d83093f7b
2022-07-29ripple/minitrace: verify that libc flag naming matchesedef
Change-Id: Ic6392ac15d249f22aec9d866de088d5901d09948
2022-07-29ripple/minitrace: convert OpenFlags to bitshiftsedef
Change-Id: I12392d386027542815e2a4b96372121ece3adfeb
2022-07-29ripple/minitrace: verify syscall bitflags against libcedef
Change-Id: Ie9eae95ff5f6e438ef84007153a599d092953382
2022-07-29ripple/minitrace: make syscall_bitflags! non-recursiveedef
Change-Id: I81047a4ac68e11a37882175732e4985c2f43a183
2022-07-29ripple/minitrace: match identifier style in macrosedef
Having macro identifiers match the "real" identifier style makes macro code markedly more readable. Change-Id: Ib675390cc04941ce782c75b2ee686709441081fc
2022-07-29ripple/minitrace: pluralise newfstatat flags parameteredef
Change-Id: I025b5f707b15933c4dccdf36ce9e2c8d8673fe74
2022-07-28ripple/minitrace: bitflags-ify mmap/mprotect protection flagsedef
Change-Id: Iaf6d5717e2d83a6f81fda34da086311d21f345c2
2022-07-28ripple/minitrace: mark file descriptor parametersedef
This doesn't specifically handle * the distinction between borrowed/owned file descriptors (in non-return positions, that only applies to `close`) * "nullable" fd parameters (-1 for not-present) * other sentinel fds, like AT_FDCWD * fd validity in general Change-Id: I00fa68ec94b8f24e28c661d0c007becb37c0a5f3
2022-07-27ripple/minitrace: remove GRND_ prefix from GrndFlagsedef
Change-Id: Icfcab2fccc1c152a694dfba3ba1e272cdacdbfab
2022-07-27ripple/minitrace: parse mmap flags strictlyedef
Change-Id: I56731f205e065bf501fd31a69c71c10aa7a2f720
2022-07-27ripple/minitrace: mmap fd is an i32, not u64edef
Change-Id: I092d4f47231d560a0c4ac023e63051def34c2c92
2022-07-27ripple/minitrace: better errors for invalid syscall argsedef
Change-Id: I26356c9b88c838e3c87e4083ac17f958c7c57bb7
2022-07-27ripple/minitrace: introduce syscall_bitflags!edef
Squeeze the bitflags / SyscallArg impl boilerplate into one macro. Change-Id: I5b5213b6f3ee11bc61b6f8439ceb2510ef6dffec
2022-07-27ripple/minitrace: implement SyscallArg for bitflagsedef
Change-Id: I1b4e7e01b5d5c840ac2e94f9637552f71e61ed04
2022-07-27ripple/minitrace: disable dead_code lint on SyscallArgsedef
Every single syscall arg producing a warning is just noisy. Change-Id: I339260886110e2982217ebbf9d29cb1cf91c747c
2022-07-27ripple/minitrace: refactor syscall interpretationV
We separate type-based parsing of syscall arguments from more detailed validation based on multiple parameters or on specific values. The former is implemented with a macro that takes syscall signatures and generates the relevant enum variant and parsing code. Co-authored-by: edef <edef@unfathomable.blue> Change-Id: I7e334d3e128e7b1461bfd6fae7c8ec5dd6ada0a8
2022-07-27ripple/minitrace: fix newfstatat dirfd handlingedef
Same bug as Ied63822001c8700fc71c89ec16d18036fbc33972, hiding missing behaviour around dirfd. newfstatat(AT_FDCWD, path, …) is used, as is newfstatat(fd, "", …). Change-Id: I03b9dc5118d7a47514abef82c4a577e8362fbb4d
2022-07-08ripple/minitrace: convert openat dirfd correctlyedef
Our conversion always mangled it, *and* our comparison was inverted, so both bugs remained hidden. Change-Id: Ied63822001c8700fc71c89ec16d18036fbc33972
2022-06-19ripple/minitrace: fix syscall ABIV
The fourth argument is passed in r10, not rcx, which is merely clobbered by syscalls. Change-Id: I0c7210c621f6955deccf21348ce6f495424555cc
2022-06-19Make rustfmt.toml globaledef
Change-Id: I9ef820d2c22d54c6d8d6b259c2eea3f27d6459ac
2022-06-19ripple/fossil: box the bao decoderedef
Shuffling 3k around on the stack doesn't make anyone happy. Change-Id: I444fc22267380d9b99ca63ca148b9a9e85238b5a
2022-06-17ripple/minitrace: add set_tid_address, set_robust_list, and getrandomV
With this, minitrace has all the syscalls needed to run cc1. Change-Id: Iaeef58769f69d64e192af2270eb520e891daec94
2022-06-13ripple/fossil: use std::os::unix::preludeedef
We were accidentally grabbing things from the prelude module already, and this is the cleaner fix. Change-Id: I2c6b669164df11f467eae495d109e096eb267b59
2022-06-12ripple/fossil/chunker: use hex_literal rather than hex escapesedef
A little more explicit, and a bit more readable. Change-Id: Id462c46236e1de547aabd36409260bd1c99f6f88
2022-06-12ripple/website: add SPDX annotationsedef
We haven't picked a license for our web content yet, so this is LicenseRef-NONE for now. Change-Id: Iabfc35860cb8ad0025624161214b1cbb6574e0c5
2022-06-12ripple/shell.nix: provide a wrapper for SUID fusermount(1)edef
fusermount(1) gets shadowed by pkgs.fuse, but we actually need the SUID-root one in the system PATH. This adds a wrapper script that hunts down a SUID-root binary from PATH. Change-Id: Icc5c6789d7b74bf8f6e3c50529333eb6b894527f
2022-05-10ripple/fossil: permit importing trees from git reposedef
Change-Id: I8329f14bddaaa2d141e82c087821e4602bd1259a
2022-05-05ripple/fossil/mount: document how . and .. workedef
Change-Id: I6c4d471b2840613d30ee95efe14547f2f9c0db6b
2022-05-05ripple/fossil/Cargo.toml: sort depsedef
Change-Id: I0710d80e34bcad1d4b1406731f2d790a0e6972f4
2022-05-05ripple/fossil/mount: terminate out-of-bounds Node::find earlyedef
Node::find would walk the tree all the way down and to the right if given an out of bounds index. This doesn't affect the return value (None), but it does waste some cycles walking down all the way to the deepest rightmost leaf. Change-Id: Ic2f72aa96291a25819fc6c3c2f060fe0182a7663
2022-05-04ripple/fossil/mount: don't allocate on readdiredef
Change-Id: I319a2de0da0ff71f0f337e5a17ef199f23254b11