| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On x86 EFI follows the windows ABI, which expects 8-byte aligned long
long. The x86 sysv ELF ABI expects them to be 8-byte aligned when used
alone, but 4-byte aligned when they appear inside of structs:
struct S {
int i;
long long ll;
};
// _Static_assert(sizeof(struct S) == 12, "x86 sysv ABI");
_Static_assert(sizeof(struct S) == 16, "EFI/MS ABI");
To get the behavior we need when building with sysv ELF ABI we need to
pass '-malign-double' to the compiler as done by EDK2.
This in turn will make ubsan unhappy as the stack may not be properly
aligned on entry, so we have to tell the compiler explicitly to re-align
the stack on entry to efi_main.
This fixes loading EFI drivers on x86 that were previously always
rejected as the EFI_LOADED_IMAGE_PROTOCOL had a wrong memory layout.
See also: https://github.com/rhboot/shim/pull/516
|
|\
| |
| | |
os-util: several cleanups and introduce _at() variants of os-release parsers
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
To make it consistent with other env vars, e.g. $SYSTEMD_ESP_PATH or
$SYSTEMD_XBOOTLDR_PATH.
This is useful when the root is specified by a file descriptor, instead
of a path.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
For consistency with other functions.
Unfortunately, va_start() requires that the previous argument is a
pointer, hence the order of the arguments in the internal function
cannot be changed.
|
| |
| |
| |
| | |
No functional change, just refactoring.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The variable 'r' is usually used for storing return value of functional
call. Let's introduce another boolean to store the current loop status.
No functional change, just refactoring.
|
| | |
|
| |
| |
| |
| | |
No functional change, just refactoring.
|
| |
| |
| |
| |
| |
| | |
The logics of opening os-release and extension-release are completely
different.
No functional change, just refactoring.
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
sd-device,udev: refuse unsafe path in SYMLINK= and TAG=
|
| |
| |
| |
| | |
As here keys are relative paths to sysattrs.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
All tags are managed under /run/udev/tags, and the directories there are
named with tags. Hence, each tag must be a valid filename.
This also makes all validity check moved to sd-device side, and
makes failure caused by setting invalid tags non-critical.
With this change, an empty string cannot be assigned to TAG=, hence the
test cases are adjusted.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is especially for the case that the path contains "..".
Prompted by https://github.com/systemd/systemd/pull/27164#issuecomment-1498863858.
This also makes SYMLINK= gracefully handle paths prefixed with "/dev/",
and manage devlink paths with path_hash_ops.
|
| |
| |
| |
| | |
No functional change, just refactoring.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
And make compress_xyz() return 0 on success, as we know which compression
algorithm is used when calling compress_blob().
Follow-up for 2360352ef02548723ac0c8eaf5ff6905eb9eeca5.
|
|\ \
| | |
| | | |
udev: rename arguments and options, update comments
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In that branch, 'root' is a non-root and absolute path.
Hence, delete_trailing_chars() does not make the path empty.
And, if the path contains redundant slashes at the end, that will be
dropped by path_simplify().
|
|\ \ \
| | | |
| | | | |
busctl: add --xml-interface to the help message
|
| |/ /
| | |
| | |
| | | |
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
|
|\ \ \
| | | |
| | | | |
Support O_PATH more
|
| | | |
| | | |
| | | |
| | | | |
To make it support the case that the fd is O_PATH.
|
| |/ / |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a followup to
413e8650b71d4404a7453403797f93d73d88c466
> tree-wide: Use "unmet" for condition checks, not "failed"
Since I noticed when running `systemctl status` on a recent
systemd still seeing
`Condition: start condition failed`
To recap the original rationale here for "unmet" is that it's
normal for some units to be conditional, so the term "failure"
here is too strong.
|
|\ \ \
| | | |
| | | | |
path-util: introduce path_prefix_root_cwd(), and use it in find_esp() and friends
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Unlikely, but even if find_esp() or friends called with unnormalized or
relative 'root', let's make the result path normalized and absolute.
Note, before 63105f33edad423691e2d53bf7071f99c83799ba, these functions
returned an absolute and normalized path. But the commit made the result
path simply concatenated with root.
Follow-up for 63105f33edad423691e2d53bf7071f99c83799ba.
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
os-util: tiny cleanups
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When extension is not specified, image class is not necessary to be
specified. Let's use _IMAGE_CLASS_INVALID as an indicator that no
extension is specified.
|
| |/ / |
|
|/ / |
|
|\ \
| | |
| | | |
fileio: introduce xfopenat_full()
|
| | |
| | |
| | |
| | |
| | | |
This unifies call of various xfopenat() variants.
No functional change, just refactoring.
|
| | | |
|
|\ \ \
| | | |
| | | | |
analyze: make 'blame' work even the default target not reached
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
When STATX_MNT_ID is not supported, we need to manually obtain mount id.
Let's compare inodes earlier.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
As commented in dir_fd_is_root(), comparing inode is not enough to
determine if we are at the root directory.
|
| | | | |
|