summaryrefslogtreecommitdiff
path: root/Base/usr/share
AgeCommit message (Collapse)Author
2020-01-17Kernel: Add "accept" pledge promise for accepting incoming connectionsAndreas Kling
This patch adds a new "accept" promise that allows you to call accept() on an already listening socket. This lets programs set up a socket for for listening and then dropping "inet" and/or "unix" so that only incoming (and existing) connections are allowed from that point on. No new outgoing connections or listening server sockets can be created. In addition to accept() it also allows getsockopt() with SOL_SOCKET and SO_PEERCRED, which is used to find the PID/UID/GID of the socket peer. This is used by our IPC library when creating shared buffers that should only be accessible to a specific peer process. This allows us to drop "unix" in WindowServer and LookupServer. :^) It also makes the debugging/introspection RPC sockets in CEventLoop based programs work again.
2020-01-14man: Fix minor inconsistencies in pledge(2) man pageBrian Gianforcaro
- tty promise was listed twice. - Fix a few typos
2020-01-12Base: Document new chroot abilitiesSergey Bugaev
2020-01-12Base: Tweak language in pledge(2) man pageAndreas Kling
2020-01-12Base: Add a man page about pledge(2)Andreas Kling
2020-01-11Base: Document mount(2) and mount(8)Sergey Bugaev
2020-01-10chroot: Add a little chroot programAndreas Kling
This program changes the current filesystem root and spawns a shell.
2020-01-09SystemServer: Allow specifying per-service socket file permissionsAndreas Kling
2020-01-04SystemServer: Explicitly open /dev/null for services without StdIOAndreas Kling
Spawning services with nothing open at all on the standard I/O fds is way too harsh. We now open /dev/null for them instead.
2020-01-04SystemServer: Fetch any extra GIDs and call setgroups() before spawnAndreas Kling
We now pick up all the user's extra GIDs from /etc/group and make sure those are set before exec'ing a service. This means we finally get to enjoy being in more than one group. :^)
2020-01-02Kernel: Make the purge() syscall superuser-onlyAndreas Kling
I don't think we need to give unprivileged users access to what is essentially a kernel testing mechanism.
2020-01-02Base: Move the modload and modunload command documentation to man8Andreas Kling
These are system administration commands, not intended for use by all users. These tend to go in section 8.
2020-01-02Base: Remove "idle" priority note from SystemServer(5)Andreas Kling
The "idle" priority was never meant to be exposed to userspace, as it's only used by the kernel's internal idle thread.
2020-01-02Base: Document EPERM error in module_load(2) and module_unload(2)Andreas Kling
Only the superuser can use these system calls.
2020-01-01Kernel: Disable x86 RDTSC instruction in userspaceAndreas Kling
It's still possible to read the TSC via the read_tsc() syscall, but we will now clear some of the bottom bits for unprivileged users.
2020-01-01Kernel: Prevent executing I/O instructions in userspaceAndreas Kling
All threads were running with iomapbase=0 in their TSS, which the CPU interprets as "there's an I/O permission bitmap starting at offset 0 into my TSS". Because of that, any bits that were 1 inside the TSS would allow the thread to execute I/O instructions on the port with that bit index. Fix this by always setting the iomapbase to sizeof(TSS32), and also setting the TSS descriptor's limit to sizeof(TSS32), effectively making the I/O permissions bitmap zero-length. This should make it no longer possible to do I/O from userspace. :^)
2020-01-01Kernel: Enable x86 UMIP (User Mode Instruction Prevention) if supportedAndreas Kling
This prevents code running outside of kernel mode from using the following instructions: * SGDT - Store Global Descriptor Table * SIDT - Store Interrupt Descriptor Table * SLDT - Store Local Descriptor Table * SMSW - Store Machine Status Word * STR - Store Task Register There's no need for userspace to be able to use these instructions so let's just disable them to prevent information leakage.
2019-12-31Crash: Add a "Test All Crash Types" optionShannon Booth
Add an option "-A", that will run all of the crash types in the crash program. In this mode, all crash tests are run in a child process so that the crash program does not crash. Crash uses the return status of the child process to ascertain whether the crash happened as expected.
2019-12-30Base: Remove misplaced backtick in syscall(1)Andreas Kling
2019-12-30Base: Add man page for keymap(1)Jami Kettunen
2019-12-29Base: Add man page for purge(8)Andreas Kling
2019-12-25crash: Add "-X" option for attempting to execute non-executable memoryAndreas Kling
2019-12-24Userland: Add syscall -l option and man pageMauri de Souza Nunes
2019-12-24Base: Describe kernel modules, syscalls, and programsConrad Pankoff
2019-12-24Docs: Add cal(1) man pageAndrés Vieira
2019-12-02Kernel: Crash on memory access in non-readable regionsAndreas Kling
This patch makes it possible to make memory regions non-readable. This is enforced using the "present" bit in the page tables. A process that hits an not-present page fault in a non-readable region will be crashed.
2019-11-29Kernel: Disallow syscalls from writeable memoryAndreas Kling
Processes will now crash with SIGSEGV if they attempt making a syscall from PROT_WRITE memory. This neat idea comes from OpenBSD. :^)
2019-11-26Base: Document SystemServerSergey Bugaev
2019-11-22Docs: Add avol(1)Andreas Kling
2019-11-17Docs: Add note about EINVAL to isatty(3)Andreas Kling
2019-11-17Docs: Add isatty(3) man pageAndreas Kling
2019-11-17Docs: Add uname(1) and uname(2) man pagesAndreas Kling
2019-11-17Docs: Add info about -T and -t to crash(1)Andreas Kling
2019-10-03LibC: Implement dirname() and basename()Sergey Bugaev
And write section 3 man pages for them.
2019-10-03Base: Add some "See also" links to the man pagesSergey Bugaev
We can do this now that we have link support in LibMarkdown and LibHTML ^)
2019-09-30Help+man.md: Add man sectionsLarkin Nickle
Also correct minor formatting mistake in TelnetServer.md.
2019-09-30Add TelnetServer man pageLarkin Nickle
2019-09-28Base: Fix minor typos in man pagesAndreas Kling
2019-09-28Base: Add man pages for create_shared_buffer() and share_buffer_with()Andreas Kling
2019-09-28Base: Write some initial man pagesSergey Bugaev
It ain't much, but it's honest work!