Age | Commit message (Collapse) | Author |
|
|
|
This is a new promise that guards access to mmap() with MAP_FIXED.
Fixed-address mappings are rarely used, but can be useful if you are
trying to groom the process address space for malicious purposes.
None of our programs need this at the moment, as the only user of
MAP_FIXED is DynamicLoader, but the fixed mappings are constructed
before the process has had a chance to pledge anything.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Document:
* Unmap After Init
* RELRO
* -fstack-clash-protection
* -fstack-protector / -fstack-protector-strong
|
|
Closes #5374.
|
|
Since so much work is being put into mitigations, I thought
it would be nice to track them all in one place. This is the
start of that document.
|
|
LookupServer can now itself server as a DNS server! To service DNS clients, it
uses the exact same lookup logic as it does for LibIPC clients. Namely, it will
synthesize records for data from /etc/hosts on its own (you can use this to
configure host names for your domain!), and forward other questions to
configured upstream DNS servers. On top of that, it implements its own caching,
so once a DNS resource record has been obtained from an upstream server,
LookupServer will cache it locally for faster future lookups.
The DNS server part of LookupServer is disabled by default, because it requires
you to run it as root (for it to bind to the port 53) and on boot, and we don't
want either by default. If you want to try it, modify SystemServer.ini like so:
[LookupServer]
Socket=/tmp/portal/lookup
SocketPermissions=666
Priority=low
KeepAlive=1
User=root
BootModes=text,graphical
and enable server mode in LookupServer.ini like so:
[DNS]
Nameservers=...
EnableServer=1
If in the future we implement socket takeover for IP sockets, these limitations
may be lifted.
|
|
|
|
This commit adds a simple project template system to HackStudio,
as well as a pretty New Project dialog, inspired by early VS.NET
and MS Office.
|
|
File Manager's toolbar, location bar, status bar and folder pane
can now be toggled on/off
|
|
|
|
Toolbar, status bar, and ruler can now be toggled on/off and their
settings are saved in ~/.config/TextEditor.ini
|
|
Fixes pixels bleeding through from behind.
|
|
OpenBSD also has this promise.
|
|
|
|
|
|
Also allow specifying different shadows for the task and menu bar.
|
|
Also update the Redmond 2000 theme to drop shadows more Redmond-like.
|
|
gimp claimed that the rightmost white pixel was actually transparent.
It didn't look transparent in Serenity, but I painted it white like
the other inner pixels anyways.
|
|
I upsampled them in gimp using the "None" filter and manually cleaned up
the outline. The drop shadow is just upsampled using "None" and looks a
bit rough -- someone who knows how to do this either has to re-create
the shadow on the 2x bitmaps, or we need to remove the shadow from the
resource and render it in code at some point. Still, looks a lot better
than with the upsampled 1x bitmaps.
|
|
This implements simple window shadows around most windows, including
tooltips. Because this method uses a bitmap for the shadow bits,
it is limited to rectangular window frames. For non-rectangular
window frames we'll need to implement a more sophisticated algorithm.
|
|
... and performs preprocessing on the source code before parsing.
To support this, we are now able to keep track of multiple
files in the autocomplete engine. We re-parse a file whenever it is
edited.
|
|
This is an external file from https://pci-ids.ucw.cz that's being updated
daily, which was imported a while ago but probably shouldn't live in the
SerenityOS repository in the first place (or else would need manual
maintenance). The legal aspects of redistributing this file as we
currently do are not quite clear to me, they require either GPL (version
2 or later) or 3-clause BSD - Serenity is 2-clause BSD...
The current version we use is 2019.08.08, so quite outdated - and while
most of these devices are obviously not supported, we're still capable
of *listing* them, so having an up-to-date version with recent additions
and fixes would be nice.
This updates the root CMakeLists.txt to check for existence of the file
and download it if not found - effectively on every fresh build. Do note
that this is not a critical file, and the system runs just fine should
this ever fail. :^)
|
|
This patch adds SymbolServer, a service daemon that provides
symbolication of ELF binaries. It has a very simple IPC API at the
moment that only turns addresses into symbol names.
This can be used to implement symbolication without having to do
in-process ELF parsing yourself. :^)
|
|
Since it is owned by root anyway, there is no need for 'additional security' to prevent
modification of that directory. This makes it easier to quickly export files from
Serenity. Fixes #5152.
|
|
This was a cute application for its time, but it's far too jokey and
non-serious for how I'd like this project to treat itself.
|
|
- Keymap name/file is now optional
- No root shell required (/bin/keymap is setuid root)
- Add example for getting the current keymap name
|
|
- en.json -> en-us.json
- gb.json -> en-gb.json
- ptbr.json -> pt-br.json
- ptpt.json -> pt-pt.json
|
|
|
|
|
|
I'm strongly basing this on what I'm used to (xkb-data's "de(basic)"),
but without dead keys (since we don't support them).
|
|
I used this arcane incantation by @emanuele6:
< <(grep -hoP -e '\\u[A-Za-z0-9]{4}' ./*.json) grep -i -ve '\\u001b' \
| sort -u \
| while read -r; do
sed -i "s,\\$REPLY,$(eval "echo $'$REPLY'"),g" ./*.json
done
Plus some manual editing to re-align everything. Thanks! :)
|
|
This seems to be the last remaining fallout of
8733da652e0baec609d29a3ca8e2ec8b61d08fe6.
|
|
We had an exception that allowed SOL_SOCKET + SO_PEERCRED on local
socket to support LibIPC's PID exchange mechanism. This is no longer
needed so let's just remove the exception.
|
|
This reverts commit b7b09470ca7f08f42b0f3a6701192adbdf198870.
Mounting a file on top of a file is a valid thing we support.
|
|
|
|
|
|
Shift+3 is "£", not "#".
|
|
This is in line with all the other ones, and makes finding the same keys
in each map array a little easier.
|
|
This prevents sys$mmap() and sys$mprotect() from creating executable
memory mappings in pledged programs that don't have this promise.
Note that the dynamic loader runs before pledging happens, so it's
unaffected by this.
|
|
When mounting an Ext2FS, a block device source is required. All other
filesystem types are unaffected, as most of them ignore the source file
descriptor anyway.
Fixes #5153.
|
|
The absence of this check allowed silly things like this:
# touch file
# mount /dev/hda file
|
|
By default, C++ auto completion will still be performed by the
lexer-based logic.
However, the parser-based logic can be switched on via the menubar.
|
|
Update the outdated list of options, mention UserspaceEmulator, update
example shell output.
|
|
|