aboutsummaryrefslogtreecommitdiffhomepage
path: root/helper
AgeCommit message (Collapse)Author
2025-06-25treewide: rename to hakureiOphestra
Fortify makes little sense for a container tool. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-06-05nix: update flake lockOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27helper/args: copy args on wt creationOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-27helper/stub: output to stdoutOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-25helper: remove bubblewrap wrapperOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17sandbox: pass cmd to cancel functionOphestra
This is not usually in scope otherwise. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17sandbox: move out of internalOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17sandbox: move params setup functionsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17sandbox: wrap fmsg interfaceOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17seccomp: install output atomicallyOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-17dbus: run in native sandboxOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16helper: implement native container backendOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16helper: raise WaitDelay during testsOphestra
Helper runs very slowly with race detector. This prevents it from timing out. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16ldd: lib paths resolve functionOphestra
This is what always happens right after a ldd call, so implement it here. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16helper/stub: copy args to stderrOphestra
Some helpers are implemented via go test itself in tests, and as a result stdout gets clobbered. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-16helper: eliminate commandContext replacementOphestra
This is done more cleanly by modifying Args in cmdF. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-15helper: expose extra files to directOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-15helper: combine helper ipc setupOphestra
The two-step args call is no longer necessary since stat is passed on initialisation. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-15helper: rearrange initialisation argsOphestra
This improves consistency across two different helper implementations. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-15helper: move process wrapper to directOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-15helper: clean up interfaceOphestra
The helper interface was messy due to odd context acquisition order. That has changed, so this cleans it up. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-14helper/proc: pass extra files and startOphestra
For integration with native container tooling. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-14seccomp: move out of helperOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-14helper: embed context on creationOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-12helper/seccomp: improve error handlingOphestra
This passes both errno and libseccomp return value. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-12helper/seccomp: seccomp_load on negative fdOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-03-09helper/proc: expose setup fileOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-25dbus: set process group idOphestra
This stops signals sent by the TTY driver from propagating to the xdg-dbus-proxy process. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-23fortify: keep external files aliveOphestra
This should eliminate sporadic failures, like the known double close in "seccomp". Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-19helper/bwrap: rename Write to WriteFileOphestra
In case this might want to be an io.Writer. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16fmsg: implement suspend in writerOphestra
This removes the requirement to call fmsg.Exit on every exit path, and enables direct use of the "log" package. However, fmsg.BeforeExit is still encouraged when possible to catch exit on suspended output. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-16helper/bwrap: expose address of DataConfigOphestra
This allows the caller to defer fulfilling its payload. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15helper/bwrap: implement file copy flagsOphestra
These are significantly more efficient and less error-prone than mounting an external tmpfile. This should also reduce attack surface as the resulting files are private to its specific sandbox. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-15helper/bwrap: PositionalArg implement fmt.StringerOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14helper/bwrap: merge Args and FDArgsOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-14helper/bwrap: remove fmsg importOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper: use generic extra files interfaceOphestra
This replaces the pipes object and integrates context into helper process lifecycle. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/proc: cancel ec on parent ctxOphestra
This allows errors written during a timeout to be received and handled. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/seccomp: use sync.Once for closeWriteOphestra
This makes the code much cleaner, and eliminates the intermittent ErrInvalid errors. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/seccomp: benchmark exporterOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13proc/pipe: implement args and stat fileOphestra
This is a generic implementation of helper/pipe. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/proc: count dispatched errsOphestra
This helps debug implementation errors of [proc.File]. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/proc: store file addresses in linked listOphestra
Storing extra files as a slice requires the caller to allocate a large enough slice before initialising any file and never grow the slice. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-13helper/seccomp: eliminate data race on pfdOphestra
Turns out the doc comment on os.File was lying about its methods being safe for concurrent use. The race detector picked up a data race from concurrent use of Fd and Close. This change eliminates that by calling Fd in the prepare routine. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-11helper/proc: declare generic extra files interfaceOphestra
Helpers use extra files for various purposes. This provides a generic interface for implementing the fulfillment of these extra files without having to specifically handle them in the process creation code. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-08helper/proc: move package out of internalOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-07helper/seccomp: panic on invalid closeWrite useOphestra
Returning an error here puts exporter in an invalid state. The caller should guard against this condition instead. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-02-03helper/seccomp: implement reader interface via pipeOphestra
This also does not require the libc tmpfile call. BPF programs emitted by libseccomp seems to be deterministic. The tests would catch regressions as it verifies the program against known good output backed by manual testing. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-01-25helper/seccomp: do not call F_println if not verboseOphestra
This (slightly) improves performance. Signed-off-by: Ophestra <cat@gensokyo.uk>
2025-01-25helper/seccomp: separate seccomp packageOphestra
Signed-off-by: Ophestra <cat@gensokyo.uk>