Yu Watanabe
51e60dac12
test-network: drop deprecated ExecStart= modifier
2025-03-05 18:17:19 +09:00
Yu Watanabe
6ee112ed47
glibc bump followup ( #36609 )
2025-03-05 18:16:44 +09:00
Yu Watanabe
c4eef17990
dirent-util: add several assertions in posix_getdents()
...
Follow-up for e86a492ff0 .
2025-03-04 22:54:01 +01:00
Yu Watanabe
f342c2420a
chattr-util: two trivial cleanups ( #36593 )
2025-03-04 13:13:25 +09:00
Yu Watanabe
059d23c966
exec-invoke: add missing assertions and drop unnecessary conditions
...
Fixes CID#1534358.
2025-03-04 05:18:15 +09:00
Yu Watanabe
34b58da114
exec-invoke: modernize get_supplementary_groups()
...
- drop unused argument 'group',
- rename output arguments,
- add missing assertions for output arguments,
- always initialize output arguments on success.
2025-03-04 05:18:15 +09:00
Yu Watanabe
00575cfd69
hwdb-util: drop unused value assignment
...
The values assigned to 'r' were never used, and overwritten by the next
call of read_line_full().
Fixes CID#1548043 and CID#1548064.
2025-03-04 05:18:15 +09:00
Yu Watanabe
6529ab0b06
pe-binary: fix array overrun
...
This is a kind of paranoia, as memeqzero() does not read anyting if
length is zero. But, strictly speaking C language does not allow such,
and Coverity warn about that.
Fixes CID#1561177.
2025-03-04 05:18:15 +09:00
Yu Watanabe
2bf5d698d6
pe-binary: trivial coding style fixlets
2025-03-04 05:18:15 +09:00
Yu Watanabe
3428c4b818
generator: insert parentheses to make the code clearer
...
Silence CID#1563781.
2025-03-04 05:18:15 +09:00
Yu Watanabe
42f6a96e6c
fileio: move call of label_ops_post() before error handling of creating files
...
Fixes CID#1563946.
2025-03-04 05:18:15 +09:00
Yu Watanabe
b0e5cde687
async: voidify call of fsync()
...
Fixes CID#1564787.
2025-03-04 05:18:15 +09:00
Yu Watanabe
c7ef4b9f1a
copy: slightly optimize around chattr_fd()
2025-03-04 04:49:18 +09:00
Yu Watanabe
e86a492ff0
dirent-util: introduce simple wrapper of posix_getdents()
...
glibc exports getdents64 syscall as is, but musl exports it as
posix_getdents(). Let's introduce a simple wrapper of posix_getdents().
Note, our baseline for glibc is 2.31. Hence, we can assume getdents64()
always defined when building with glibc.
2025-03-04 04:23:57 +09:00
Yu Watanabe
ec32732043
basic: introduce our own sys/mount.h implementation
...
To resolve conflict with sys/mount.h and linux/mount.h or linux/fs.h.
The conflict between sys/mount.h and linux/mount.h is resolved in
glibc-2.37 (774058d72942249f71d74e7f2b639f77184160a6), but our baseline
is still glibc-2.31. Also, even with the version or newer, still
sys/mount.h conflicts with linux/fs.h, which is included by
linux/btrfs.h.
This introduces our own implementation of sys/mount.h, that can be
simultaneously included with linux/mount.h and linux/fs.h. This also
imports linux/fs.h, linux/mount.h, and several other dependent headers.
The introduced sys/mount.h header itself may not be enough simple, but
by using the header, we can drop most of workarounds in other source files.
2025-03-04 02:24:49 +09:00
Yu Watanabe
bc2bb59bdd
missing_audit: AUDIT_NLGRP_READLOG is defined since kernel v3.16
...
More specifically, since 451f921639fea4600dfb9ab2889332bdcc7b48d3.
Now, our kernel baseline is 5.4. Hence, we can drop the definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
aa14f19398
basic/linux: import capability.h from kernel 6.14-rc4
2025-03-04 02:24:49 +09:00
Yu Watanabe
b9b006c504
missing_wait: add short comment about P_PIDFD
2025-03-04 02:24:49 +09:00
Yu Watanabe
003b845cb2
missing_timerfd: TFD_TIMER_CANCEL_ON_SET is defined since glibc-2.26
2025-03-04 02:24:49 +09:00
Yu Watanabe
e75372958d
missing_threads.h: threads.h exists since glibc-2.28
2025-03-04 02:24:49 +09:00
Yu Watanabe
75b101718c
missing_socket: drop unnecessary definitions
...
All removed definitions are in glibc-2.31
2025-03-04 02:24:49 +09:00
Yu Watanabe
2c2d832eb0
missing_securebits: remove unnecessary header
...
Our kernel baseline is 5.4, hence all entries in the headers are defined
in linux/securebits.h.
2025-03-04 02:24:49 +09:00
Yu Watanabe
a7cb43d8d1
missing_resource.h: RLIMIT_RTTIME is defined since glibc-2.14
...
Now our baseline is glibc-2.31.
2025-03-04 02:24:49 +09:00
Yu Watanabe
8e091ec420
basic/linux: import prctl.h from linux 6.14-rc4
2025-03-04 02:24:49 +09:00
Yu Watanabe
6e338c25d8
missing_network: drop unnecessary definitions
...
They are already defined in glibc-2.31.
2025-03-04 02:24:49 +09:00
Yu Watanabe
b4ea2e7249
missing_namespace: drop unnecessary entries
...
Our kernel baseline is 5.4.
2025-03-04 02:24:49 +09:00
Yu Watanabe
dc1a78a462
basic/linux: import loop.h from kernel 6.14-rc4, and drop missing_loop.h
2025-03-04 02:24:49 +09:00
Yu Watanabe
fa716b6fc7
missing_keyctl: import keyctl.h from kernel 6.14-rc4
2025-03-04 02:24:49 +09:00
Yu Watanabe
e7e91769e8
basic/linux: import ioprio.h from kernel 6.14-rc4
...
This also fixes the maximum allowed ioprio class: 8 -> 7
2025-03-04 02:24:49 +09:00
Yu Watanabe
87fb62f598
missing_input: replace the header with genuine linux header
2025-03-04 02:24:49 +09:00
Yu Watanabe
4dbaa211b5
basic/linux: import hidraw.h and hid.h from linux-6.14-rc4
2025-03-04 02:24:49 +09:00
Yu Watanabe
1b8f8a2d30
missing_fs: drop unnecessary entries
...
Now our kernel baseline is 5.4.
2025-03-04 02:24:49 +09:00
Yu Watanabe
c5cba760cf
missing_fcntl: drop definitions covered by glibc-2.31
...
Note, this also fixes the definition for O_TMPFILE for parisc and hppa,
it should be 040000000 (seven zeros) rather than 0400000000 (eight zeros).
2025-03-04 02:24:49 +09:00
Yu Watanabe
b5337d1d52
meson: cleanup glibc header checkers
2025-03-04 02:24:49 +09:00
Yu Watanabe
883360f63a
missing_type: char16_t and char32_t are always defined in uchar.h since C11
...
Now, we use C17, hence the fallback definitions can be dropped.
2025-03-04 02:24:49 +09:00
Yu Watanabe
905497c86d
missing_stdlib: secure_getenv() exists since glibc-2.17
2025-03-04 02:24:49 +09:00
Yu Watanabe
e79d88320a
alloc-util: reallocarray() exists since glibc-2.26
2025-03-04 02:24:49 +09:00
Yu Watanabe
2e22dd218a
memory-util: explicit_bzero() exists since glibc-2.25
2025-03-04 02:24:49 +09:00
Yu Watanabe
6b557580fe
missing_syscall: drop unnecessary definition of AT_EMPTY_PATH
...
It is defined since glibc-2.14 (46998f745736b3c8df5901a27b6c2a19f5cc5e98),
and the value was never changed.
2025-03-04 02:24:49 +09:00
Yu Watanabe
1d917ba421
missing_syscall: drop unnecessary ifdefs for syscall number
...
Nowadays, we define syscall numbers for newer syscalls.
Hence the conditions are not necessary.
This also adds several comments about when syscalls are introduced.
2025-03-04 02:24:49 +09:00
Yu Watanabe
2a6e117ddb
missing_syscall: drop unnecessary syscall number definitions
2025-03-04 02:24:49 +09:00
Yu Watanabe
fbfe09ccd0
missing_syscall: drop unused rt_sigqueueinfo wrapper
...
The syscall is unused since 19e1a908b5 .
2025-03-04 02:24:49 +09:00
Yu Watanabe
177f168f43
missing_syscall: copy_file_range is supported by glibc since 2.27
...
Now our baseline of glibc is 2.31, hence it is OK to drop our
definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
f2786bd3e7
missing_syscall: renameat2 is supported by glibc since 2.28
...
Now our baseline of glibc is 2.31, hence it is OK to drop our
definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
d322854cac
missing_syscall: setns is supported by glibc since 2.14
...
Also, CLONE_PIDFD is defined in sched.h since 2.31.
Now our baseline of glibc is 2.31, hence it is OK to drop our
definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
96ff465861
missing_syscall: name_to_handle_at is supported by glibc since 2.14
...
Now our baseline of glibc is 2.31, hence it is OK to drop our
definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
65e844bdb8
missing_syscall: gettid is supported by glibc since 2.30
...
Now our baseline of glibc is 2.31, hence it is OK to drop our
definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
69a5c4b14c
missing_syscall: getrandom is supported by glibc since 2.25
...
Now our baseline of glibc is 2.31, hence it is OK to drop our
definition.
2025-03-04 02:24:49 +09:00
Yu Watanabe
6ca5be8d3f
missing_syscall: memfd_create() is supported by glibc since 2.27
...
Now, our baseline of glibc is 2.31, hence it is OK to drop it.
2025-03-04 02:24:36 +09:00
Yu Watanabe
a997f3387f
chattr-util: drop mostly unused 'previous' argument from chattr_path() and friends
2025-03-04 00:47:12 +09:00
Yu Watanabe
aaa5065d8f
bump minimum required version of glibc to 2.31, and drop many fallback logic around statx() ( #36558 )
...
glibc-2.31 was released on 2020-02-01, which is more than 5 years ago.
Let's also bump the baseline of glibc.
2025-03-01 04:18:17 +09:00
Yu Watanabe
ee739ea692
mountpoint-util: make statx() failure critical
...
Two error conditions are unreachable, as now both glibc and kernel
support statx(). In other many places, failure in statx() are handled as
critical, even if it is filtered by seccomp or so. Let's follow the same
way here.
2025-03-01 00:40:22 +09:00
Yu Watanabe
d5ddc0e0d3
stat-util: drop statx_fallback()
...
Now both our required baseline of glibc and kernel support statx.
2025-03-01 00:33:32 +09:00
Yu Watanabe
998e6394ea
test-stat-util: check if linux/stat.h is actually included from sys/stat.h
2025-03-01 00:33:32 +09:00
Yu Watanabe
4424e6c811
tree-wide: drop workarounds for statx()
...
struct statx in glibc header was introduced in glibc-2.28
(fd70af45528d59a00eb3190ef6706cb299488fcd), but at that time,
sys/stat.h conflicts with linux/stat.h. Since glibc-2.30
(5dad6ffbb2b76215cfcd38c3001778536ada8e8a), sys/stat.h includes
linux/stat.h if exists.
Since now our baseline of glibc is 2.31. Hence, we can drop workarounds
for struct statx by importing linux/stat.h from newer kernel (v6.14-rc4).
2025-03-01 00:33:28 +09:00
Yu Watanabe
24845c4ff6
README: bump supported minimum glibc version to 2.31
...
The current glibc versions used by major distributions:
CentOS 9: 2.34
CentOS 10: 2.39
Fedora 40: 2.39
Fedora 41: 2.40
Fedora 42: 2.41
Ubuntu 20.04 LTS (focal): 2.31
Ubuntu 22.04 LTS (jammy): 2.35
Ubuntu 24.04 LTS (noble): 2.39
Ubuntu 24.10 (oracular): 2.40
Debian 11 (Bullseye, oldstable): 2.31
Debian 12 (Bookworm, stable): 2.36
openSUSE SLE-15-SP6: 2.38
openSUSE Tumbleweed: 2.40
Hence, based on our supporting policy, we can bump the base line to 2.31.
This commit does not change anything on our source code. But, will drop
many workarounds for supporting older glibc in later commits.
2025-02-28 23:38:45 +09:00
Yu Watanabe
a3d0471b03
basic/linux: update kernel headers from v6.14-rc4
2025-02-28 23:38:45 +09:00
Yu Watanabe
914d1ec171
tmpfiles: fix output value assignment
...
Fixes a bug in 7eeda1da90 (v256).
2025-02-28 23:38:02 +09:00
Yu Watanabe
91421f8379
recurse-dir: fix wrong assertion and error code in log
...
Fixes a bug in b5a07e524e (v250).
2025-02-28 23:37:52 +09:00
Yu Watanabe
649c63d6ac
profile: return earlier if it is loaded from non-bash shell
...
Follow-up for dadbb34919 .
2025-02-28 21:24:06 +09:00
Yu Watanabe
94dc76c996
test-network: extend test case for static routes
...
- split out verifications into two functions,
- also check the following scenarios:
* unmanaging an existing interface,
* re-managing an unmanaged interface,
* adding a new unmanaged interface,
* removing an unmanaged interface.
2025-02-28 08:51:14 +01:00
Yu Watanabe
3694397994
osc-context: fix typo
...
Follow-up for 91aa93ec8d .
2025-02-28 15:51:07 +09:00
Yu Watanabe
78f2c17454
parse-util: extend the maximum length of nftable identifiers
...
Since kernel v4.14, more specifically, after the following four commits,
https://github.com/torvalds/linux/commit/e46abbcc05aa8a16b0e7f5c94e86d11af9aa2770
https://github.com/torvalds/linux/commit/b7263e071aba736cea9e71cdf2e76dfa7aebd039
https://github.com/torvalds/linux/commit/387454901bd62022ac1b04e15bd8d4fcc60bbed4
https://github.com/torvalds/linux/commit/615095752100748e221028fc96163c2b78185ae4
the maximum length of nftable identifiers are extended to 255.
Now, our kernel baseline is 5.4, hence we can freely use the extended
name length.
This also modernizes code a bit, and adds test cases.
Closes #36542 .
2025-02-28 04:57:00 +09:00
Yu Watanabe
b8358967e6
sbsign: trivial coding style cleanups
...
Follow-ups for 8c0098d486 .
2025-02-28 04:04:18 +09:00
Yu Watanabe
768cda38e6
storagetm: fix typo
...
Follow-up for 1761066b13 .
2025-02-27 13:48:34 +09:00
Yu Watanabe
44dc0c8c51
test: fix typo
...
Follow-up for f01132aacf .
2025-02-27 13:42:09 +09:00
Yu Watanabe
cf4b70aac4
docs: fix typo
...
Follow-ups for d5de148996 .
2025-02-27 13:37:20 +09:00
Yu Watanabe
98fc082c31
man: fix typo
...
Follow-up for f8825c1364 .
2025-02-27 13:37:20 +09:00
Yu Watanabe
71427850a3
journal-remote: fix typo
...
Follow-up for c259c9e253 .
2025-02-27 13:37:20 +09:00
Yu Watanabe
4bfbf0fcdf
network: fix typo
...
Follow-up for 6698795eda .
2025-02-27 13:37:20 +09:00
Yu Watanabe
587124d587
pam_systemd/pam_systemd_home: various fixes ( #36505 )
2025-02-27 12:37:05 +09:00
Yu Watanabe
2c051721ec
sd-device: always pass random UUID on triggering uevent
...
Then, this makes sd_device_trigger() a simple wrapper of
sd_device_trigger_with_uuid().
2025-02-26 18:07:51 +09:00
Yu Watanabe
fde9f2bc48
udevadm-trigger: drop support of kernels order than 4.13
...
Now our kernel baseline is 5.4, hence we can always write action string
with a synthetic UUID.
2025-02-26 18:07:51 +09:00
Yu Watanabe
0e1c87b4aa
udev-builtin-uaccess: modernize code
...
No functional change, just refactoring.
2025-02-26 18:07:51 +09:00
Yu Watanabe
df7cef0940
udev-util: drop unnecessary inclusion of missing_threads.h
...
Follow-up for a3df693799 .
2025-02-26 18:07:51 +09:00
Yu Watanabe
ed3a95b2fb
test-bus-object: check if enumerated objects are sorted
2025-02-25 23:41:20 +09:00
Yu Watanabe
31cdcca8dc
sd-bus: sort enumerated child objects
...
Fixes #8008 .
2025-02-25 23:41:20 +09:00
Yu Watanabe
d83bfdd5b0
timesync: add short comment for boolean argument
2025-02-25 13:45:07 +09:00
Yu Watanabe
9c999b53b9
timesync: drop meaningless boolean flag
...
The boolean flag is always true, as manager_save_time_and_rearm() is
called unconditionally.
Follow-up for 33e82f3ef3 .
2025-02-25 13:39:46 +09:00
Yu Watanabe
2960a8cfe8
timesync: use event_reset_time_relative()
...
No functional change, just refactoring.
2025-02-25 13:29:34 +09:00
Yu Watanabe
1930f5afe6
fuzz: decompress_startswith() may return zero ( #36490 )
...
Also, disables fuzz-compress on oss-fuzz.
Fixes #36472 .
2025-02-25 11:05:06 +09:00
Yu Watanabe
0656b3a083
fuzz: tentatively disable fuzz-compress on oss-fuzz
...
It does not work on oss-fuzz for some reasons. See #11018 .
2025-02-23 05:37:05 +09:00
Yu Watanabe
339f2f2eeb
fuzz: decompress_startswith() may return zero
...
Fixes #36472 .
2025-02-23 05:04:49 +09:00
Yu Watanabe
8e0037fb3b
sd-event: always operate on child source via pidfd ( #36480 )
2025-02-23 04:41:28 +09:00
Yu Watanabe
18f2d38d5f
Journal-remote: modernize source_free() and fix memleak ( #36430 )
...
- modernize source_free().
- fix memleak introduced by cfaf78001c . Fixes CID#1591182.
2025-02-19 04:56:15 +09:00
Yu Watanabe
a6eb22968c
terminal-util: fix possible NULL pointer dereference
...
Fixes a bug introduced by 94a2b1cd25 .
Fixes CID#1591787.
2025-02-18 18:34:39 +01:00
Yu Watanabe
134bb7bfdf
nspawn: unconditionally enable FUSE and use FOREACH_ARRAY() ( #36407 )
...
- FUSE is unconditionally enabled in the container, as our kernel base
line (v5.4) supports userns-safe FUSE, which is supported since v4.18.
- Create /dev/net/tun only when it is accessible.
- Replaces several loops with FOREACH_ARRAY().
2025-02-19 02:09:58 +09:00
Yu Watanabe
011a83e42b
network: fix KeepConfiguration=yes ( #36414 )
...
Fixes a regression in dd6d53a8dc (v257).
Fixes #36411 .
2025-02-19 02:09:09 +09:00
Yu Watanabe
54258df829
journal-remote: fix memleak
...
Fixes a bug introduced by cfaf78001c .
Fixes CID#1591182.
2025-02-19 01:00:20 +09:00
Yu Watanabe
ca25c8a5e2
journal-remote: modernize source_free()
...
- make it return NULL,
- suppress log message about reference counter of writer unless trace
logging is enabled,
- introduce cleanup function for RemoteSource.
2025-02-19 00:58:24 +09:00
Yu Watanabe
114d191a17
nspawn: move the accessibility check for device nodes into copy_devnode_one()
2025-02-18 23:35:13 +09:00
Yu Watanabe
c51e472bd4
nspawn: drop unused argument for copy_devnode_one()
2025-02-18 23:24:20 +09:00
Yu Watanabe
9fff6bf59e
nspawn: create /dev/net/tun only when it is accessible
...
Follow-up for 985ea98e7f .
When DevicePolicy= is enabled, but DeviceAllow= for /dev/net/tun is not
specified, bind-mounting the device node from the host system is
meaningless, as it cannot be used in the container anyway.
Let's check the device node is accessible before creating or
bind-mounting.
2025-02-18 23:24:20 +09:00
Yu Watanabe
3cc23a2c23
nspawn: enable FUSE unconditionally
...
FUSE is userns-safe since kernel v4.18 (da315f6e03988a7127680bbc26e1028991b899b8),
and now our kernel base line is 5.4. Let's drop the logic of checking
the version of FUSE, and unconditionally enable FUSE.
2025-02-18 23:24:20 +09:00
Yu Watanabe
1236f06c42
nspawn: use FOREACH_ARRAY() where applicable
2025-02-18 23:24:20 +09:00
Yu Watanabe
81f637630c
network: introduce link_should_mark_config()
...
This split-out common logic from link_drop_routes() and friends.
This is mostly a refactoring, and not change behavior in most cases.
But slightly change behavior for how foreign nexthops and routing
policy rules are managed.
E.g. when KeepConfiguration=static, previously all foreign nexthops and
routing policy rules were kept, but now only foreign nexthops and rules
with RTPROT_STATIC are kept and others are dropped.
Similary, when KeepConfiguration=dynamic, previously all foreign nexthops
and rules were removed, but now foreign configs with a dynamic protocol
e.g. RTPROT_DHCP are kept, and still configs with RTPROT_STATIC are
dropped.
Currently, we do not set/get/manage protocol for neighbor entries.
Hence, the logic of managing foreign neighbor entries is unchanged.
2025-02-18 23:13:51 +09:00
Yu Watanabe
1cac0676da
test-network: add test case for KeepConfiguration=yes with RTPROT_BOOT
...
For issue #36411 .
2025-02-18 23:01:53 +09:00
Yu Watanabe
724faccf45
network/route: do not remove any foreign routes when KeepConfiguration=yes
...
Without this change, only foreign routes with RTPROT_KERNEL, RTPROT_STATIC,
RTPROT_DHCP, RTPROT_RA, and RTPROT_REDIRECT are kept, and foreign routes with
other protocol e.g. RTPROT_BOOT are removed even if KeepConfiguration=yes.
Fixes a regression in dd6d53a8dc (v257).
Fixes #36411 .
2025-02-18 23:01:53 +09:00
Yu Watanabe
f9c03297c5
network: update outdated comment
...
Now, our kernel base line supports ambient capabilities, hence the
comment is outdated.
2025-02-17 06:20:46 +09:00
Yu Watanabe
eb381e65f1
network/address: update comment
...
As commented in the code, the check is now redundant. But let's keep
that to make IPv6LL addresses on other interfaces not removed
accidentally.
2025-02-17 06:20:46 +09:00