Commit Graph
2867 Commits
Author SHA1 Message Date
Julia Kartseva 5587ce7f6c fragment: add ip protocol to SocketBind{Allow|Deny}=
Add ip protocol token to SocketBind{Allow|Deny}= property parser.

Use parse_socket_bind_item helper.

Replace int32_t with int in cgroup item for socket-bind as it was
requested in [0].

Update tests.

[0] https://github.com/systemd/systemd/pull/19942#discussion_r652150024
2021-06-30 00:36:33 -07:00
Julia Kartseva 8bd095aa9a shared: add parser for SocketBind{Allow|Deny}=
Parse address family, ip protocol and ports, any of them can be
optional. If neither is specified, a special value 'any' is expected.
Helper is placed in shared to be reused in both fragment and dbus.
Add unit tests with valid and invalid examples.
2021-06-30 00:36:26 -07:00
Zbigniew Jędrzejewski-Szmek a2e2917162 Merge pull request #19941 from bluca/condition_os_release
core: add ConditionOSRelease= directive
2021-06-25 09:22:50 +02:00
Lennart Poettering de61a04b18 tree-wide: make specifier expansion --root= aware
This fixes repart's, systemctl's, sysusers' and tmpfiles' specifier
expansion to honour the root dir specified with --root=. This is
relevant for specifiers such as %m, %o, … which are directly sourced
from files on disk.

This doesn't try to be overly smart: specifiers referring to runtime
concepts (i.e. boot ID, architecture, hostname) rather than files on the
medium are left as is. There's certainly a point to be made that they
should fail in case --root= is specified, but I am not entirely convinced
about that, and it's certainly something we can look into later if
there's reason to.

I wondered for a while how to hook this up best, but given that quite a
large number of specifiers resolve to data from files on disks, and most
of our tools needs this, I ultimately decided to make the root dir a
first class parameter to specifier_printf().

Replaces: #16187
Fixes: #16183
2021-06-24 22:30:14 +02:00
Lennart Poettering 86e24d608a Merge pull request #20001 from keszybz/test-path-simplify-less
Do not call path_simplify() when not needed
2021-06-24 15:33:09 +02:00
Zbigniew Jędrzejewski-Szmek 280e4b368e Merge pull request #20004 from yuwata/readdir-ensure-type
dirent-util: introduce readdir_ensure_type()
2021-06-24 15:11:06 +02:00
Luca Boccassi 1e26f8a60b core: add ConditionOSRelease= directive 2021-06-24 13:57:48 +01:00
Luca Boccassi 70b6ee6110 basic/extract-word: add EXTRACT_RETAIN_SEPARATORS flag
Makes the helpers avoid skipping over the separator(s) in the
input string
2021-06-24 13:41:17 +01:00
Zbigniew Jędrzejewski-Szmek 0fb789af20 test-hash-funcs: add new file to test that path set ignores dot components 2021-06-24 10:59:45 +02:00
Zbigniew Jędrzejewski-Szmek b25a930f0e basic,shared: move a bunch of files to src/shared/
The goal is to move everything that requires selinux or smack
away from src/basic/. This means that src/basic/label.[ch] must move,
which implies btrfs-util.[ch], copy.[ch], and a bunch of other files
which form a cluster of internal use.

This is just moving text around, so there should be no functional difference.

test-blockdev-util is new, because path_is_encrypted() is moved to
blockdev-util.c, and so far we didn't have any tests for code there.
2021-06-24 10:11:00 +02:00
Zbigniew Jędrzejewski-Szmek 6a818c3cb4 basic: move acquire_data_fd() and fd_duplicate_data_fd() to new data-fd-util.c
fd_duplicate_data_fd() is renamed to copy_data_fd(). This makes
the two functions have nicely similar names.

Now fd-util.[ch] is again about low-level file descriptor manipulations.
copy_data_fd() is a complex function that internally wraps the other
functions in copy.c. I want to move copy.c and the whole cluster of
related code from basic/ to shared/ later on, and this is a preparatory
step for that.
2021-06-24 10:05:22 +02:00
Yu Watanabe f565b8676f dirent-util: use readdir_ensure_type() in readdir_no_dot() and FOREACH_DIRENT() 2021-06-24 04:29:40 +09:00
Zbigniew Jędrzejewski-Szmek 6d216bdd07 test-path-util: check that dot components are irrelevant for path comparisons 2021-06-23 18:11:49 +02:00
Zbigniew Jędrzejewski-Szmek 9c6535367d basic,shared: move make_mount_point_inode_*() to shared/
Those pull in selinux for labelling, and we should avoid selinux in basic/.
2021-06-23 10:34:58 +02:00
Zbigniew Jędrzejewski-Szmek 51bb6a103e test-mount-util: add output test for mount_flags_to_string() 2021-06-22 14:42:03 +09:00
Zbigniew Jędrzejewski-Szmek 917578880f test-mount-util: add usual print headers 2021-06-22 14:42:03 +09:00
Yu Watanabe 9b23679e53 mount-util: use EXTRACT_KEEP_QUOTE to handle mount options
Otherwise, the quotes which wrap SELinux options are dropped.
2021-06-21 21:34:50 +09:00
Yu Watanabe f59551f18e test: add test cases for EXTRACT_KEEP_QUOTE and EXTRACT_UNQUOTE 2021-06-21 21:34:07 +09:00
Anders Wenhaug 45eb4d2261 time-util: don't use plural units indiscriminately
format_timestamp_relative currently returns the plural form of
years and months no matter the quantity, and in many cases (for
durations > 1 week) this is the same with days.

This patch changes this so that the function takes the quantity into account,
returning "1 month 1 week ago" instead of "1 months 1 weeks ago".
2021-06-20 21:54:37 +02:00
Yu Watanabe 7422405623 test: fix syscall existence check
Follow-up for 0643eb47a0.

This also drops errnously introduced hashmap_put() in the commit.
2021-06-15 21:00:51 +02:00
Luca Boccassi c35949a51c Merge pull request #19930 from yuwata/update-comments
Update comments
2021-06-15 11:28:51 +01:00
Yu Watanabe a3f5f4a5c0 fix typo 2021-06-15 14:19:30 +09:00
Yu Watanabe 7802194ac0 tree-wide: add missing whitespace at the end of comments 2021-06-15 14:09:29 +09:00
Khem Raj 0643eb47a0 test-seccomp: Check for __NR_ppoll before use (#19858)
some newer architectures like riscv32 do not have __NR_ppoll from get go
2021-06-15 13:12:30 +09:00
Zbigniew Jędrzejewski-Szmek e77365b479 Merge pull request #19882 from keszybz/test-stat-util-more
Add a test for path_is_read_only_fs()
2021-06-11 18:44:58 +02:00
Zbigniew Jędrzejewski-Szmek 51db8fdb92 test-stat-util: don't fail under chroot
I wanted to see what is_path_read_only_fs() and is_path_temporary_fs() return
in a chroot, and various tests would fail. For most of our codebase, we can
assume that /proc and such are mounted, and it doesn't make sense to make the
tests work in a chroot. But let's do it here. (In general, it would be useful
for most stuff in src/basic/, since it's linked into libraries which might be
invoked in incorrectly set up environments and should not fail too badly.)
2021-06-11 07:40:53 +02:00
Zbigniew Jędrzejewski-Szmek d8d0da1f19 test-stat-util: add a very basic test for test_path_is_read_only() 2021-06-10 13:45:55 +02:00
Zbigniew Jędrzejewski-Szmek b845894c80 test-stat-util: add standard test logging 2021-06-10 13:45:55 +02:00
Zbigniew Jędrzejewski-Szmek 21996f81b2 test-capability: drop work-around initialization
Since those workarounds have been added, work has been done to tighten
up log_*() return values. Seems we get no warning with
gcc-11.1.1-1.fc34.x86_64 and -O0/-O2.
2021-06-09 22:01:13 +02:00
Lennart Poettering cd09a5f3c1 core: rename socket-bind.[ch] → bpf-socket-bind.[ch]
The other BPF infra has a file name prefix of "bpf-" hence do so here
too.
2021-06-08 22:02:32 +02:00
Zbigniew Jędrzejewski-Szmek 7ff9d99e9e test-libcrypt-util: print out default for password settings, run make_salt() a few times
Inspired by
https://fedoraproject.org/wiki/Changes/yescrypt_as_default_hashing_method_for_shadow.
2021-06-08 21:41:17 +02:00
Luca Boccassi 3745355764 Merge pull request #19793 from keszybz/tmpfiles-autofs-and-globs
tmpfiles: better handling of autofs and globs
2021-06-07 09:14:27 +01:00
Yu Watanabe 16f9036471 Merge pull request #19796 from yuwata/udev-node-cleanups
udev: several cleanups about creating device symlink
2021-06-04 21:46:43 +09:00
Lennart Poettering d414f41535 test: don't expect that clone() always makes it to the kernel
We might get EPERM on certain clone() flag combinations. Apparently in
Docker for example.

Prompted by: https://github.com/systemd/systemd/pull/19800#issuecomment-854196491
2021-06-04 13:38:00 +02:00
Zbigniew Jędrzejewski-Szmek 1e472a6ce4 basic/glob-util: add helper to strip the glob part from a glob 2021-06-04 12:21:19 +02:00
Yu Watanabe 78d8eae9a5 util: drop DEV_NUM_PATH_MAX and xsprintf_dev_num_path() 2021-06-04 15:51:39 +09:00
Lennart Poettering 9b1c5610e0 test: add a 'static' on a global variable we don't actually export
All global but not exported variables should be "static" in our
codebase, add "static" to one more such variable hence.
2021-06-03 11:30:56 +02:00
Lennart Poettering c75370cc18 test: tweak privilege tests for two more tests
These tests require properly privileged root users, hence skip things
when we don't have CAP_SYS_ADMIN.

Fixes: #19746
2021-06-03 11:30:56 +02:00
Lennart Poettering 6da5d7de78 test-seccomp: tighten privilege check before seccomp()
geteuid() without CAP_SYS_ADMIN is not enough to do unrestricted
seccomp(). Hence tighten the check.

See: #19746
2021-06-03 11:27:36 +02:00
Lennart Poettering e80cb4cba4 test-capability: skip tests that need CAP_NET_RAW if cap is not passed
See: #19746
2021-06-03 11:27:36 +02:00
Yu Watanabe a884774635 Merge pull request #19792 from keszybz/more-logging-stuff
More logging tweaks
2021-06-03 03:36:28 +09:00
Zbigniew Jędrzejewski-Szmek 2a341bb9d2 core: split out core/manager-dump.[ch]
This is a fairly specialized topic, let's create a separate file for it.
2021-06-02 09:22:08 +02:00
Lennart Poettering 9d5acfab20 unit-name: generate a clear error code when converting an overly long fs path to a unit name 2021-06-01 23:08:13 +02:00
Yu Watanabe 48008c1cbf tree-wide: fix typo 2021-05-28 19:52:12 +09:00
Yu Watanabe cb71ed91f7 path-util: make path_simplify() use path_find_first_component() 2021-05-28 13:44:38 +09:00
Yu Watanabe 4ff361cc86 tree-wide: always drop unnecessary dot in path 2021-05-28 13:44:38 +09:00
Yu Watanabe 0195046449 path-util: make path_extract_filename/directory() handle "." gracefully
This makes the functions handle "xx/" and "xx/." as equivalent.
Moreover, now path_extract_directory() returns normalized path, that is
no redundant "/" or "/./" are contained.
2021-05-28 13:44:38 +09:00
Yu Watanabe 484cd43cae path-util: introduce path_find_last_component() 2021-05-28 13:44:38 +09:00
Yu Watanabe 39d7af99c2 fs-util: make chase_symlinks() use path_find_first_component()
The previous commit about path_compare() breaks chase_symlinks().
This commit fixes it.
2021-05-28 13:44:19 +09:00
Yu Watanabe 353df4438e path-util: make path_compare() and path_hash_func() ignore "."
This also makes path_compare() may return arbitrary integer as it now
simply pass the result of strcmp() or memcmp().

This changes the behavior of path_extract_filename/directory() when
e.g. "/." or "/./" are input. But the change should be desired.
2021-05-28 13:41:23 +09:00