1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-08-01 16:37:48 +00:00
Commit graph

2355 commits

Author SHA1 Message Date
Tim Schumacher
177a5baf60 LibELF: Ensure that DynamicLoader only receives absolute paths
While at it, start renaming variables where we know that they store a
path, so that we will get less confused in the future.
2022-10-31 19:23:02 +00:00
Timothy Flynn
bda737fde7 nologin: Use proper format strings with out() and outln()
1. Don't use the sv literal as this bypasses CheckedFormatString.

2. Don't use the content of a file as the format string. If the file
   contains "{}", the program will crash.
2022-10-31 11:22:39 -04:00
Beckett Normington
30189186e9 Utilities: Add nologin application
This adds the `nologin` application to the system. This application
will look for `/etc/nologin`. If it is present, it will display the
message in the file. Otherwise, it will display an error about the
current account being unavailable.
2022-10-31 10:54:00 +00:00
demostanis
7015c40905 ntpquery: Fix pledge and unveil invocations 2022-10-27 20:17:39 +01:00
Liav A
75f01692b4 Kernel+Userland: Move /sys/firmware/power_state to /sys/kernel directory
Let's put the power_state global node into the /sys/kernel directory,
because that directory represents all global nodes and variables being
related to the Kernel. It's also a mutable node, that is more acceptable
being in the mentioned directory due to the fact that all other files in
the /sys/firmware directory are just firmware blobs and are not mutable
at all.
2022-10-25 15:33:34 -06:00
Liav A
9d1ba0e6ad Utilities: Use new global variables at /sys/kernel/ directory 2022-10-25 15:33:34 -06:00
Liav A
a0ed543993 sysctl: Use /sys/kernel/variables/ directory instead of /proc/sys 2022-10-25 15:33:34 -06:00
Eli Youngs
7b05f2c4d6 mv: Support the '--no-clobber' option 2022-10-24 23:48:14 +01:00
demostanis
3e8b5ac920 AK+Everywhere: Turn bool keep_empty to an enum in split* functions 2022-10-24 23:29:18 +01:00
Ali Mohammad Pur
6b50425013 wasm: Map the entire input wasm file instead of using Core::File
This is a 30x (!) speedup in parsing time as we don't lose time to
Core::File's silly memmove()-into-provided-buffer stuff anymore.
2022-10-24 15:54:20 +02:00
Liav A
5b3980b040 Userland: Utilize MS_NOREGULAR mount flag
For SystemServer, we simply ensure that the /dev mount is now mounted
with MS_NOREGULAR flag to ensure only non-regular files are created,
thus, achieving what DevTmpFS provided in its implementation, but in a
much more sane and clean way than how DevTmpFS did that.

For other userland applications, we simply make them being aware of this
flag so they can show an indication about this flag being used to the
user.
2022-10-22 19:18:15 +02:00
Maxwell Trussell
b80c24f57f Utilities: Rename jp to json
With the scope of `jp` expanding beyond just printing JSON (e.g.
querying JSON), `json` seems to be a more fitting name.
2022-10-22 00:47:05 +02:00
Maxwell Trussell
424033be44 Utilities: Add jq-like json query functionality to jp 2022-10-22 00:47:05 +02:00
brapru
6691ef5a44 route: Accept CIDR notation when specifying network
Now that the IPv4Address has the ability to generate valid IP addresses
from CIDR notations, this provides a nicer interface to the user when
specifying the network address to add or delete.
2022-10-17 20:18:44 +02:00
networkException
afeff4cebb LibJS+js: Disable console debug messages outside Serenity only for js
Previously we would disable console debug messages on all non Serenity
platforms as it caused double printing on lagom `js`. This patch limits
this to the `js` utility, allowing LibWeb to print debug messages
regardless of the operating system :^)
2022-10-16 02:06:02 +03:30
leeight
2eb6dbd4f0 headless-browser: Add ca-certs-path options 2022-10-15 02:44:47 +03:30
Lucas CHOLLET
2d6124049a LibAudio: Get rid of unused method Loader::file()
`aplay` and two files of `SoundPlayer` were relying on the include of
`LibCore/File.h` by `Loader.h`.
2022-10-14 23:11:23 +02:00
kleines Filmröllchen
83da2be8f3 uname: Report system revision version aka git commit hash
This can be done with -v and makes uname fully POSIX compliant as far as
I can tell.
2022-10-14 13:45:33 +02:00
Gunnar Beutner
31bd5b1a02 AK+Userland: Stub out code that isn't currently implemented on AARCH64
Even though this almost certainly wouldn't run properly even if we had
a working kernel for AARCH64 this at least lets us build all the
userland binaries.
2022-10-14 13:01:13 +02:00
Maxwell Trussell
f5e68fcc20 Utilities: Add pkill 2022-10-13 11:15:33 +02:00
implicitfield
480e517f03 checksum: Support the '--check' option
This commit also updates 'checksum' to use the Core::Stream::File API.
2022-10-12 12:01:40 -06:00
Jeremy Borgman
f894e8be62 shot: Add ability to edit in PixelPaint 2022-10-12 00:46:33 -06:00
implicitfield
8c5fa95ba3 test: Guard code paths that may lead to a null pointer dereference
test no longer crashes with a segmentation violation if invalid
arguments are passed.
2022-10-11 23:38:13 -06:00
Sam Atkins
437c6fc277 pro: Stop closing stdout early
This was causing a race-condition where sometimes the response body
would not get printed.

Co-authored-by: Ali Mohammad Pur <mpfard@serenityos.org>
2022-10-11 21:52:13 +02:00
Sam Atkins
ee72a11ca9 pro: Add argument --method/-m for controlling the HTTP method
This lets you send requests like DELETE.
2022-10-11 21:52:13 +02:00
Sam Atkins
53b7edd5b9 pro: Print the response code if it's an error 2022-10-11 21:52:13 +02:00
Andrew Kaster
539fb08551 Userland: Remove unecessary uses of __serenity__ macro 2022-10-10 12:23:12 +02:00
Andrew Kaster
828441852f Everywhere: Replace uses of __serenity__ with AK_OS_SERENITY
Now that we have OS macros for essentially every supported OS, let's try
to use them everywhere.
2022-10-10 12:23:12 +02:00
Ben Wiederhake
3aeb57ed09 AK+Everywhere: Fix data corruption due to code-point-to-char conversion
In particular, StringView::contains(char) is often used with a u32
code point. When this is done, the compiler will for some reason allow
data corruption to occur silently.

In fact, this is one of two reasons for the following OSS Fuzz issue:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49184
This is probably a very old bug.

In the particular case of URLParser, AK::is_url_code_point got confused:
    return /* ... */ || "!$&'()*+,-./:;=?@_~"sv.contains(code_point);
If code_point is a large code point that happens to have the correct
lower bytes, AK::is_url_code_point is then convinced that the given
code point is okay, even if it is actually problematic.

This commit fixes *only* the silent data corruption due to the erroneous
conversion, and does not fully resolve OSS-Fuzz#49184.
2022-10-09 10:37:20 -06:00
Thomas Voss
b556bfe8eb rev: Read from stdin if the filename '-' is given
The implementation of `rev` found on Linux systems does not have this
behavior, however other utilities do offer this behavior and so there
really isn't too much of an argument to be made for *not* having this as
a feature.
2022-10-06 16:06:50 +01:00
Timothy Flynn
7cab86ad28 Userland: Unveil /proc/all in applications which require it
These were missed in 7af5eef. It is needed for any application using
e.g. FileSystemAccessServer.
2022-10-03 17:09:21 +01:00
Timothy Flynn
25e0ab3ee4 Userland: Tighten promises by removing 'proc' where it isn't used
This is a partial revert of commit 7af5eef. After 97d15e9, the 'proc'
promise is not needed for operations using getsid().

This also fixes launching several applications in which 7af5eef added
the 'proc' promise only in the second call to pledge().
2022-10-03 17:09:21 +01:00
Peter Elliott
7af5eef0dd SystemServer+LoginServer+Userland: Switch to sid-based sockets
This commit does three things atomically:
- switch over Core::Account+SystemServer+LoginServer to sid based socket
  names.
- change socket names with %uid to %sid.
- add/update necessary pledges and unveils.

Userland: Switch over servers to sid based sockets

Userland: Properly pledge and unveil for sid based sockets
2022-10-03 11:11:29 +02:00
Peter Elliott
1df4cc1926 Utilities/logout: Refactor to use Core::SessionManagement::logout 2022-10-03 11:11:29 +02:00
Lucas CHOLLET
b8c42365f0 mount: Report error instead of crashing on failure
Being unable to `open` on the source caused mount to crash. The error is
now properly reported to the user.
2022-10-02 21:33:35 +02:00
implicitfield
6c86b40724 test: Support more options
Adds -g, -G, -k, -O and -u options.
2022-10-02 21:33:01 +02:00
implicitfield
caab6ac968 test: Print the correct operator on error 2022-10-02 21:33:01 +02:00
thankyouverycool
be3cc756fc config: Enable adding and removing groups 2022-10-01 13:39:10 +03:30
networkException
4230dbbb21 AK+Everywhere: Replace "protocol" with "scheme" url helpers
URL had properly named replacements for protocol(), set_protocol() and
create_with_file_protocol() already. This patch removes these function
and updates all call sites to use the functions named according to the
specification.

See https://url.spec.whatwg.org/#concept-url-scheme
2022-09-29 09:39:04 +01:00
demostanis
a194303948 less: Show correct line number
This patch makes less start at line 1 instead of 0.
2022-09-28 09:42:40 +01:00
demostanis
505910aea1 less: Properly stop on EOF 2022-09-28 09:42:40 +01:00
Lucas CHOLLET
e1edd620ee pls: Use LibCore::Account::login() instead of manually setting the uid
In addition to changing the uid, the method also changes the gid and
properly sets groups. So this patch will also mitigate the security
issue of `pls`.
2022-09-28 00:35:36 +01:00
Lucas CHOLLET
8fabe9a3ad LibCore: Propagate errors from LibCore::Account::login() 2022-09-27 21:29:44 +01:00
Lucas CHOLLET
6900c4fe29 su: Add the --login option
This option, often used with only a lonely dash, allows to "simulate a
login". For now, it just changes the current directory to the home of
the new user.
2022-09-27 21:29:44 +01:00
Lucas CHOLLET
507cb411c2 LibCore: Use StringView instead of char * in Account 2022-09-27 21:29:44 +01:00
Thomas Voss
80b56ced93 Meta: Update my email-address 2022-09-27 15:15:36 +01:00
Sam Atkins
fb2e1c4611 headless-browser: Install EventLoop and Font plugins so it doesn't crash 2022-09-21 20:42:36 +01:00
Andreas Kling
cd7262ee56 LibWeb+LibWebView+WebContent: Add Web::Platform::ImageCodecPlugin
This replaces the previous Web::ImageDecoding::Decoder interface.
While we're doing this, also move the SerenityOS implementation of this
interface from LibWebView to WebContent. That means we no longer have to
link with LibImageDecoderClient in applications that use a web view.
2022-09-16 15:15:50 +02:00
demostanis
847577bea2 uniq: Improve POSIX compliance
Adds -d, -c, -i, -f and -s options.
It differs a little bit from other implementations,
but it does the trick and corresponds to POSIX's description
2022-09-09 14:11:52 +01:00
Andrew Kaster
5ab3fcf710 Meta: Update jakt build support for fully bootstrapped compiler
Remove the Corrosion dependency, and use the now-builtin
add_jakt_executable function from the Jakt install rules to build our
example application.

By using find_package(Jakt), we now have to set ENABLE_JAKT manually on
both serenity and Lagom at the same time, so the preferred method to do
this for now is:

    cmake -B Build/superbuild<arch><toolchain> \
          -S Meta/CMake/Superbuild \
          -DENABLE_JAKT=ON \
          -DJAKT_SOURCE_DIR=/path/to/jakt

Where omitting JAKT_SOURCE_DIR will still pull from the main branch of
SerenityOS/jakt. This can be done after runing Meta/serenity.sh run.
2022-09-09 11:23:42 +02:00