Repository navigation
0.18.0 --- the atoms of openkal 0.17, the stop word given back, and a start without execveat - #38
Merged
Merged
Conversation
… start without execveat openkal 0.17 (branch openkal-0.17.0): - kal_fs_rename_flags (renameat2 RENAME_NOREPLACE), per volume - kal_env_image (/proc/self/exe, AT_EXECFN), kal_env_system - kal_net_listen_at / kal_net_connect_at (AF_UNIX at /proc/self/fd/<dir>/<name>) - kal_process_end_as_requested; kal_process_self, kal_process_open_id (pidfd), kal_process_info - KAL_TERM_SEQUENCES reported set - kal_exec_publish_part, kal_exec_granularity (AT_PAGESZ, not 4 KiB) - an environment entry without = is refused Defects: - K1: the sigreturn trampoline is placed in .text (GCC -O0 put it in .bss) - K2: a request the starter ignored stays ignored when the word is armed - K11: where execveat answers ENOSYS (termux's PRoot), execve with an absolute name; under PRoot from the first start; argument registers are in/out operands (PRoot rewrites rsi in seccomp mode). Upstreams mcppls's vendored 0.15.1. Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…rted program begins with the disposition this one was started with Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…rness was started with Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…name (openkal 0.17) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…OP_REMOVE_OPEN (openkal 0.17, clause 7.14) Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…/proc names it, and one the kernel gives no descriptor for is observed through its entry Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
…, and from the registers only where it does not: a static program over musl passed the check with what its registers held Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements openkal 0.17 (mcpplibs/openkal#52, branch
openkal-0.17.0) and fixes four defects.openkal 0.17
kal_fs_rename_flags:renameat2(RENAME_NOREPLACE). Volume properties follow each format's support.kal_env_image:/proc/self/exe, falling back toAT_EXECFN.kal_env_system:linux.kal_net_listen_at/kal_net_connect_at:AF_UNIXat/proc/self/fd/<dir>/<name>.kal_process_end_as_requested: restores the request's default disposition and sends it again.kal_process_self,kal_process_open_id(pidfd_open), andkal_process_info.kal_process_inforeports the start time from/proc/<pid>/stat, CPU time from the process CPU clock, and whether the process has ended (waitid WNOWAITfor a child, the pidfd's readiness otherwise).KAL_TERM_SEQUENCESis reported as set.kal_exec_publish_partandkal_exec_granularity. The page size now comes fromAT_PAGESZinstead of a hard-coded 4 KiB.=is refused.Defects
.text. Under GCC-O0it had been emitted into.bss, and the program died with SIGSEGV after SIGTERM.execveatwith a directory descriptor (ENOSYS). The start now falls back toexecvewith an absolute name; under PRoot it usesexecvefrom the first start. Argument registers are also declared as in/out operands, because PRoot's seccomp mode rewritesrsi. This upstreams mcppls's vendored 0.15.1 copy.Tests
tests/stop_word_take_over.cppcovers K1, K2 and G4.tests/spawn_without_execveat.cppuses a seccomp filter that answers ENOSYS toexecveat.full,optional: 234 held, 0 did not hold.