]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
5 years agobootctl: tiny shortification
Lennart Poettering [Fri, 22 Jun 2018 09:43:13 +0000 (11:43 +0200)] 
bootctl: tiny shortification

5 years agobootctl: let's be paranoid and synchronize the ESP in full after all changes
Lennart Poettering [Fri, 22 Jun 2018 09:36:58 +0000 (11:36 +0200)] 
bootctl: let's be paranoid and synchronize the ESP in full after all changes

We already synchronize all files we write individually, as well as the
directories they are stored in. Let's also synchronize the ESP as a
whole after our work, just in case.

5 years agoMerge pull request #10262 from keszybz/hibres-disable
Lennart Poettering [Mon, 8 Oct 2018 19:39:54 +0000 (21:39 +0200)] 
Merge pull request #10262 from keszybz/hibres-disable

Switches to disable hibernation and/or resuming

5 years agomount-util: show mount source in failure log message (#10312)
Lennart Poettering [Mon, 8 Oct 2018 18:59:11 +0000 (20:59 +0200)] 
mount-util: show mount source in failure log message (#10312)

5 years agoptyfwd: voidify more calls (#10310)
Lennart Poettering [Mon, 8 Oct 2018 18:53:35 +0000 (20:53 +0200)] 
ptyfwd: voidify more calls (#10310)

5 years agoMerge pull request #10159 from poettering/killall-spree-kernel-thread
Zbigniew Jędrzejewski-Szmek [Mon, 8 Oct 2018 18:12:18 +0000 (20:12 +0200)] 
Merge pull request #10159 from poettering/killall-spree-kernel-thread

killall.c fixes regarding kernel thread detection

5 years agoMerge pull request #10281 from yuwata/follow-up-10277
Zbigniew Jędrzejewski-Szmek [Mon, 8 Oct 2018 16:42:47 +0000 (18:42 +0200)] 
Merge pull request #10281 from yuwata/follow-up-10277

meson: add more compile tests

5 years agomeson: use c_args in generator scripts (#10289)
Yu Watanabe [Mon, 8 Oct 2018 16:37:06 +0000 (01:37 +0900)] 
meson: use c_args in generator scripts (#10289)

May be useful in some cases.

5 years agonspawn: optionally don't mount a tmpfs over /tmp (#10294)
Lennart Poettering [Mon, 8 Oct 2018 16:32:03 +0000 (18:32 +0200)] 
nspawn: optionally don't mount a tmpfs over /tmp (#10294)

nspawn: optionally, don't mount a tmpfs on /tmp

Fixes: #10260
5 years agomeson: only build src/shared/tests.c if tests are enabled
Michael Olbrich [Sun, 30 Sep 2018 14:08:14 +0000 (16:08 +0200)] 
meson: only build src/shared/tests.c if tests are enabled

It's only needed for tests and leaks build directories into
libsystemd-shared.

5 years agolibsystemd: drop *_unrefp from symbol list
Yu Watanabe [Mon, 1 Oct 2018 19:45:05 +0000 (04:45 +0900)] 
libsystemd: drop *_unrefp from symbol list

Follow-up for 3f608087bd57c4d9134754cdad562fa057a97c9e and
6083c4b763eb3c890396974335a47b880a55cdfd.

5 years agoTODO: remove entry 10262/head
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 09:18:25 +0000 (11:18 +0200)] 
TODO: remove entry

Swap on luks works great. Nothing to do here.

5 years agoshared/sleep-config: add switches to kill specific sleep modes
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 09:17:36 +0000 (11:17 +0200)] 
shared/sleep-config: add switches to kill specific sleep modes

/etc/systemd/sleep.conf gains four new switches:
AllowSuspend=, AllowHibernation=, AllowSuspendThenHibernate=, AllowHybridSleep=.

Disabling specific modes was already possible by masking suspend.target,
hibernate.target, suspend-then-hibernate.target, or hybrid-sleep.target.
But this is not convenient for distributions, which want to set some defaults
based on what they want to support. Having those available as configuration
makes it easy to put a config file in /usr/lib/systemd/sleep.conf.d/ that
overrides the defaults and gives instructions how to undo that override.

5 years agoshared/sleep-config: forbid hibernation if resume= is not configured
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 08:15:46 +0000 (10:15 +0200)] 
shared/sleep-config: forbid hibernation if resume= is not configured

5 years agotest-sleep: print function names
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 08:15:16 +0000 (10:15 +0200)] 
test-sleep: print function names

5 years agobasic/proc-cmdline: allow parsing of cmdline from a string
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 07:29:09 +0000 (09:29 +0200)] 
basic/proc-cmdline: allow parsing of cmdline from a string

Comes with tests.

Also add direct test for $SYSTEMD_PROC_CMDLINE.

In test-proc-cmdline, "true" was masquerading as PROC_CMDLINE_STRIP_RD_PREFIX,
fix that. Also, reorder functions to match call order.

5 years agoDrop empty lines in proc-cmdline.c
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 06:45:25 +0000 (08:45 +0200)] 
Drop empty lines in proc-cmdline.c

5 years agoshared/bootspec: remember the full path to boot entry and use it in logging
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 06:35:12 +0000 (08:35 +0200)] 
shared/bootspec: remember the full path to boot entry and use it in logging

It's much easier to understand what is going on when the full path is
logged.

5 years agoMove logic to find default sd-boot entry from systemctl to shared
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 05:45:56 +0000 (07:45 +0200)] 
Move logic to find default sd-boot entry from systemctl to shared

In preparation for use in other places. No functional change.

5 years agohib-res-generator: add "noresume"
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 05:31:10 +0000 (07:31 +0200)] 
hib-res-generator: add "noresume"

This is an override parameter, to totally skip dehiberanation.

5 years agohib-res-generator: open logging before emitting the first message
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 05:23:03 +0000 (07:23 +0200)] 
hib-res-generator: open logging before emitting the first message

Also add a debug message when we are not in initrd, because it can be
confusing why nothing is happenning.

5 years agoAdd $SYSTEMD_IN_INITRD=yes|no override for debugging
Zbigniew Jędrzejewski-Szmek [Wed, 26 Sep 2018 05:15:55 +0000 (07:15 +0200)] 
Add $SYSTEMD_IN_INITRD=yes|no override for debugging

5 years agologind: ensure seat0 CanGraphical state is written
Ray Strode [Sat, 6 Oct 2018 10:08:31 +0000 (06:08 -0400)] 
logind: ensure seat0 CanGraphical state is written

For non-`seat0` seats, attaching a graphics card to a seat can
lead to it getting created. This is because the graphics device
is a "master device" which means that device is a seat-defining
device.

`seat0` may get created, even before the graphics driver is loaded,
though. This is because the graphics driver is loaded
asynchronously at startup, and `seat0` is the primary seat of
system, associated with the system VTs.

When a graphics card is attached to a seat the `CanGraphical`
property on that seat will flip to `true`.

For seats that haven't been created yet (non-`seat0` seats), this
leads to `seat_start` getting called which ultimately causes the
seat to get serialized to `/run/systemd/seats`.

For `seat0`, which is already created, `seat_start` will return
immediately, which means the updated `CanGraphical` state will
never get written to `/run/systemd/seats`.

The end result is that clients querying `sd_seat_can_graphical`
won't get the correct answer for `seat0` in cases where the
graphics device takes a long time to load until some other peice
of seat state is updated.

This commit fixes the problem by calling `seat_save` explicitly
for already running seats at the time a graphics device is
attached.

5 years agoMerge pull request #10293 from poettering/cryptsetup-fixes
Yu Watanabe [Sat, 6 Oct 2018 14:35:28 +0000 (23:35 +0900)] 
Merge pull request #10293 from poettering/cryptsetup-fixes

two tiny cryptsetup-generator fixes

5 years agocryptsetup: use PATH_IN_SET() instead of STR_IN_SET() when comparing paths 10293/head
Lennart Poettering [Fri, 5 Oct 2018 20:39:02 +0000 (22:39 +0200)] 
cryptsetup: use PATH_IN_SET() instead of STR_IN_SET() when comparing paths

It's formally more correct.

5 years agocryptsetup: don't use %m if there's no error to show
Lennart Poettering [Fri, 5 Oct 2018 20:37:37 +0000 (22:37 +0200)] 
cryptsetup: don't use %m if there's no error to show

We are not the ones receiving an error here, but the ones generating it,
hence we shouldn't show it with %m, that's just confusing, as it
suggests we received an error from some other call.

5 years agopath-util: fix path_simplify() with kill_dots and "."
Thomas Haller [Fri, 5 Oct 2018 11:14:38 +0000 (13:14 +0200)] 
path-util: fix path_simplify() with kill_dots and "."

Previously, together with kill_dots true, patch like
".", "./.", ".//.//" would all return an empty string.

That is wrong. There must be one "." left to reference
the current directory.

Also, the comment with examples was wrong.

5 years agocore/dbus-execute: fix parsing CPUScheduling* and Nice for transient services
Yu Watanabe [Fri, 5 Oct 2018 14:43:08 +0000 (23:43 +0900)] 
core/dbus-execute: fix parsing CPUScheduling* and Nice for transient services

Fixes #10290.

5 years ago * hack around deficiencies in prctl() PR_SET_MM_*
Frank Schaefer [Thu, 4 Oct 2018 21:06:16 +0000 (16:06 -0500)] 
 * hack around deficiencies in prctl() PR_SET_MM_*

5 years agoMerge pull request #10134 from keszybz/test-runner
Lennart Poettering [Fri, 5 Oct 2018 18:35:30 +0000 (20:35 +0200)] 
Merge pull request #10134 from keszybz/test-runner

Some test-related fixed and a test runner for installed tests

5 years agoman: fix explanation about UID/GID field in tmpfiles.d(5)
Yu Watanabe [Fri, 5 Oct 2018 09:33:40 +0000 (18:33 +0900)] 
man: fix explanation about UID/GID field in tmpfiles.d(5)

Fixes #9495.

5 years agoMerge pull request #10117 from keszybz/undynamicify
Lennart Poettering [Fri, 5 Oct 2018 15:41:56 +0000 (17:41 +0200)] 
Merge pull request #10117 from keszybz/undynamicify

Set DynamicUser=no for networkd, resolved, timesyncd

5 years agoman/systemd.exec: MountFlags=shared behaviour was changed (fixed?)
Alan Jenkins [Fri, 14 Sep 2018 10:57:57 +0000 (11:57 +0100)] 
man/systemd.exec: MountFlags=shared behaviour was changed (fixed?)

The behaviour described *was* observed on Fedora 28
(systemd-238-9.git0e0aa59), with and without SELinux.  I don't actually
know why though!  It contradicts my understanding of the code, including an
explicit comment in the code.

Testing in a VM upgraded to v239-792-g1327f272d, this behaviour goes away.

Test case:

# /etc/systemd/system/mount-test.service
[Service]
MountFlags=shared
Type=oneshot
ExecStart=/usr/bin/ls -l /proc/1/ns/mnt /proc/self/ns/mnt
ExecStart=/usr/bin/grep ext4 /proc/self/mountinfo

Weird old behaviour: new mount namespace but / is fully shared.

lrwxrwxrwx. 1 root root 0 Sep 14 11:18 /proc/1/ns/mnt -> mnt:[4026531840]
lrwxrwxrwx. 1 root root 0 Sep 14 11:48 /proc/self/ns/mnt ->
mnt:[4026532851]

968 967 253:0 / / rw,relatime shared:1 - ext4 /dev/mapper/alan_dell_2016...

Current behaviour: / is not fully shared

lrwxrwxrwx. 1 root root 0 Sep 14 11:39 /proc/1/ns/mnt -> mnt:[4026531840]
lrwxrwxrwx. 1 root root 0 Sep 14 11:41 /proc/self/ns/mnt ->
mnt:[4026532329]

591 558 8:3 / / rw,relatime shared:313 master:1 - ext4 /dev/sda3 rw,secl...

5 years agoMerge pull request #10094 from keszybz/wants-loading
Lennart Poettering [Fri, 5 Oct 2018 15:36:31 +0000 (17:36 +0200)] 
Merge pull request #10094 from keszybz/wants-loading

Fix bogus fragment paths in units in .wants/.requires

5 years agoMerge pull request #10152 from yuwata/udev-use-extract
Lennart Poettering [Fri, 5 Oct 2018 15:11:43 +0000 (17:11 +0200)] 
Merge pull request #10152 from yuwata/udev-use-extract

udev: small cleanups

5 years agonetworkd-link: Don't start a DHCPv6 informational exchange automatically
Patrik Flykt [Tue, 2 Oct 2018 18:48:22 +0000 (12:48 -0600)] 
networkd-link: Don't start a DHCPv6 informational exchange automatically

When a link is configured, wait until there is a Router Advertisement before
attempting to start DHCPv6. The intended DHCPv6 mode will be evaluated in
ndisc_router_handler() in networkd-ndisc.c.

5 years agosd-resolve: make struct addrinfo defined 10281/head
Yu Watanabe [Fri, 5 Oct 2018 05:40:44 +0000 (14:40 +0900)] 
sd-resolve: make struct addrinfo defined

5 years agomeson: also run compile tests for not installed systemd headers
Yu Watanabe [Fri, 5 Oct 2018 05:29:05 +0000 (14:29 +0900)] 
meson: also run compile tests for not installed systemd headers

Follow-up for b62f9008668a5330c61b4de7e0d48147bcd1edf7 (#10277).

5 years agotest-execute: add a test for systemcall filter (#10273)
Yu Watanabe [Fri, 5 Oct 2018 05:46:30 +0000 (14:46 +0900)] 
test-execute: add a test for systemcall filter (#10273)

This adds a test for issue #9939 which is fixed by
a5404992cc7724ebf7572a0aa89d9fdb26ce0b62 (#9942).

5 years agosd-netlink: sort headers and include net/ethernet.h
Yu Watanabe [Fri, 5 Oct 2018 05:27:32 +0000 (14:27 +0900)] 
sd-netlink: sort headers and include net/ethernet.h

5 years agodhcp6: don't include internal header "sparse-endian.h" in "sd-dhcp6-client.h"
Thomas Haller [Thu, 4 Oct 2018 16:54:58 +0000 (18:54 +0200)] 
dhcp6: don't include internal header "sparse-endian.h" in "sd-dhcp6-client.h"

Arguably, libsystemd-network is (still) entirely internal API.
However there is the aim of maybe exposing it as public API.
For that reason, it cannot include internal headers from
"src/basic/".

Note how files "src/systemd/sd-*.h" don't include any systemd
headers which don't themself have an "sd-" prefix.

Fixes: d89a400ed664e0b57fd8667db5637792a185e831
5 years agoAdd DOCUMENTATION_URL as a standard value for /etc/os-release
Stephen Gallagher [Thu, 4 Oct 2018 12:19:18 +0000 (07:19 -0500)] 
Add DOCUMENTATION_URL as a standard value for /etc/os-release

It is very useful for distributions to be able to set a primary
documentation URL in a standard location so that users and
applications on the system can identify it. For example, many
headless systems these days use the "Cockpit" admin console. It
would be ideal if we could specify this location directly in the
os-release file so that any application or service could have a
well-known location for retrieving this and displaying it
appropriately. Users could likewise examine /etc/os-release to
learn this location.

Related: https://github.com/cockpit-project/cockpit/issues/10198

Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
5 years agoMerge pull request #10263 from keszybz/test-fs-util-generalization
Lennart Poettering [Thu, 4 Oct 2018 11:23:41 +0000 (13:23 +0200)] 
Merge pull request #10263 from keszybz/test-fs-util-generalization

test-fs-util generalization

5 years agotest: fix memleak in test-fs-util 10263/head
Yu Watanabe [Thu, 4 Oct 2018 07:22:11 +0000 (16:22 +0900)] 
test: fix memleak in test-fs-util

Fixes #10267 and CID#1395997.

5 years agotest-fs-util: run all tests on the specified directory
Zbigniew Jędrzejewski-Szmek [Wed, 3 Oct 2018 12:08:49 +0000 (14:08 +0200)] 
test-fs-util: run all tests on the specified directory

This removes $RENAME_NOREPLACE_DIR and uses a command-line argument instead.
Logging is added, and tests are skipped if we get -EPERM or friends
(which happens on FAT and other filesystems).

5 years agotest-fs-util: simplify testdir creation
Zbigniew Jędrzejewski-Szmek [Wed, 3 Oct 2018 11:42:08 +0000 (13:42 +0200)] 
test-fs-util: simplify testdir creation

5 years agoMerge pull request #10251 from poettering/renameat-racy
Zbigniew Jędrzejewski-Szmek [Wed, 3 Oct 2018 11:37:53 +0000 (13:37 +0200)] 
Merge pull request #10251 from poettering/renameat-racy

rename_noreplace() fallback for file systems where neither RENAME_REPLACE nor link()/unlinkat() is available

5 years agoMerge pull request #10257 from pfl/dhcp6_pd_enable_later_link
Zbigniew Jędrzejewski-Szmek [Wed, 3 Oct 2018 09:04:41 +0000 (11:04 +0200)] 
Merge pull request #10257 from pfl/dhcp6_pd_enable_later_link

DHCP6 PD enable later link

5 years agoMerge pull request #10261 from yuwata/test-network
Zbigniew Jędrzejewski-Szmek [Wed, 3 Oct 2018 08:03:34 +0000 (10:03 +0200)] 
Merge pull request #10261 from yuwata/test-network

test: small improvements for systemd-networkd-test.py

5 years agotest-execute: also tests under the condition that unshare() is filtered
Yu Watanabe [Wed, 19 Sep 2018 05:17:29 +0000 (14:17 +0900)] 
test-execute: also tests under the condition that unshare() is filtered

This is mainly for testing 1beab8b0d0ff2d7d1436b52d4a0c3d56dc908962.

5 years agoMerge pull request #10213 from yuwata/oss-fuzz-10746
Zbigniew Jędrzejewski-Szmek [Wed, 3 Oct 2018 06:31:55 +0000 (08:31 +0200)] 
Merge pull request #10213 from yuwata/oss-fuzz-10746

dhcp6: fix issue oss-fuzz#10746

5 years agotest: make systemd-networkd-tests.py run on arbitrary directory 10261/head
Yu Watanabe [Wed, 3 Oct 2018 05:38:30 +0000 (14:38 +0900)] 
test: make systemd-networkd-tests.py run on arbitrary directory

5 years agotest: replace stop+start by restart
Yu Watanabe [Wed, 3 Oct 2018 05:16:24 +0000 (14:16 +0900)] 
test: replace stop+start by restart

This suppress the following warnings:
```
Warning: Stopping systemd-networkd.service, but it can still be activated by:
  systemd-networkd.socket
```

5 years agotest: add a testcase for oss-fuzz#10746 10213/head
Yu Watanabe [Sun, 30 Sep 2018 11:28:19 +0000 (20:28 +0900)] 
test: add a testcase for oss-fuzz#10746

5 years agodhcp6: check option length before reading values
Yu Watanabe [Sun, 30 Sep 2018 11:23:58 +0000 (20:23 +0900)] 
dhcp6: check option length before reading values

Fixes oss-fuzz#10746
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10746.

5 years agotest: add test for sd_device
Yu Watanabe [Fri, 28 Sep 2018 11:52:48 +0000 (20:52 +0900)] 
test: add test for sd_device

5 years agoudev: Allow acpi_index and index to be "0"
Joe Hershberger [Fri, 28 Sep 2018 20:32:35 +0000 (15:32 -0500)] 
udev: Allow acpi_index and index to be "0"

0 can be a valid index returned by the BIOS, so allow that by using the
parsing function safe_atolu() to check for errors without excluding the
valid value "0".

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
5 years agonetworkd-dhcp6: Request prefix delegation for a new link 10257/head
Patrik Flykt [Tue, 2 Oct 2018 18:29:09 +0000 (12:29 -0600)] 
networkd-dhcp6: Request prefix delegation for a new link

Request prefix delegation for a new downstream link that is enabled
after any number of upstream DHCPv6 links. Submit the request after
the link has been configured with a link-local address.

If the upstream DHCPv6 client has already been configured to request
prefixes, attempt to re-assign any possible prefixes between the
already existing links and the new one. If no prefixes are yet
acquired, nothing will happen right away and any prefixes will be
distributed after a reply from the DHCPv6 server.

If none of the already existing downstream links have requested
DHCPv6 prefixes to be assigned, enable prefix delegation for each
client and restart them one by one if they are already running. This
causes the DHCPv6 clients to re-acquire addresses and prefixes and
to re-distribute them to all links when receiving an updated
response from their respective DHCPv6 servers. If the DHCPv6 client
in question was not already running, it is set to request prefixes
but not restarted.

When an error occurs while setting or restarting the DHCPv6 client,
log the incident and move over to the next link.

Fixes #9758.

5 years agonetworkd-dhcp: Rename function and reduce its logging
Patrik Flykt [Tue, 2 Oct 2018 18:29:06 +0000 (12:29 -0600)] 
networkd-dhcp: Rename function and reduce its logging

Rename dhcp6_verify_link() to dhcp6_get_prefix_delegation() in order
to be clearer in what it does. Reduce unnecessary logging.

5 years agoDocs: Update CoC with email alias for David Strauss
David Strauss [Tue, 2 Oct 2018 16:22:45 +0000 (09:22 -0700)] 
Docs: Update CoC with email alias for David Strauss

5 years agoupdate TODO
Lennart Poettering [Tue, 2 Oct 2018 16:00:10 +0000 (18:00 +0200)] 
update TODO

5 years agoMerge pull request #10252 from poettering/recv-log-msg-bump
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 15:56:31 +0000 (17:56 +0200)] 
Merge pull request #10252 from poettering/recv-log-msg-bump

tiny sd-ravd/sd-ndisc logging fixes

5 years agoMerge pull request #10255 from poettering/hide-new-id128
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 15:54:36 +0000 (17:54 +0200)] 
Merge pull request #10255 from poettering/hide-new-id128

drop references to "journalctl --new-id128"

5 years agoMerge pull request #9898 from keszybz/id128
Lennart Poettering [Tue, 2 Oct 2018 15:43:37 +0000 (17:43 +0200)] 
Merge pull request #9898 from keszybz/id128

Add a new tool 'systemd-id128'

5 years agoMerge pull request #10249 from keszybz/lgtm-fixes
Lennart Poettering [Tue, 2 Oct 2018 15:42:55 +0000 (17:42 +0200)] 
Merge pull request #10249 from keszybz/lgtm-fixes

Fixes for issues found by LGTM

5 years agotree-wide: drop all references to "journalctl --new-id128" 10255/head
Lennart Poettering [Tue, 2 Oct 2018 14:43:54 +0000 (16:43 +0200)] 
tree-wide: drop all references to "journalctl --new-id128"

Let's advertise "systemd-id128 new" instead.

5 years agojournalctl: drop --new-id128 from help and man texts
Lennart Poettering [Tue, 2 Oct 2018 14:42:30 +0000 (16:42 +0200)] 
journalctl: drop --new-id128 from help and man texts

Let's remove redundancy and not advertise "journalctl --new-id128"
anymore, now that we have "systemd-id128 new" in a proper tool.

This allows us to reduce the overly large journalctl command set a bit.

Note that this just removes the --help and man text, the call remains
available for compat reasons.

5 years agoupdate TODO 10252/head
Lennart Poettering [Tue, 2 Oct 2018 14:28:06 +0000 (16:28 +0200)] 
update TODO

5 years agosd-radv: EAGAIN is not really unexpected, distinguishit from other errors when logging
Lennart Poettering [Tue, 2 Oct 2018 14:26:50 +0000 (16:26 +0200)] 
sd-radv: EAGAIN is not really unexpected, distinguishit from other errors when logging

5 years agosd-ndisc: generate debug log messages on unexpected errors
Lennart Poettering [Tue, 2 Oct 2018 14:25:51 +0000 (16:25 +0200)] 
sd-ndisc: generate debug log messages on unexpected errors

We really should make it possible to debug unexpected errors, hence log
something at LOG_DEBUG.

5 years agosd-radv: remove log_radv_warning_errno()
Lennart Poettering [Tue, 2 Oct 2018 14:22:54 +0000 (16:22 +0200)] 
sd-radv: remove log_radv_warning_errno()

According to our CODING_STYLE our library code should generally not log
beyond LOG_DEBUG. Let's hence get rid of log_radv_warning_errno() and
just use log_radv_errno() instead.

5 years agotest: add test case for rename_noreplace() 10251/head
Lennart Poettering [Tue, 2 Oct 2018 14:10:39 +0000 (16:10 +0200)] 
test: add test case for rename_noreplace()

5 years agofs-util: add racy RENAME_NOREPLACE fallback using access()
Lennart Poettering [Tue, 2 Oct 2018 11:34:18 +0000 (13:34 +0200)] 
fs-util: add racy RENAME_NOREPLACE fallback using access()

Apparently FAT on some recent kernels can't do RENAME_NOREPLACE, and of
course cannot do linkat()/unlinkat() either (as the hard link concept
does not exist on FAT). Add a fallback using an explicit beforehand
faccessat() check. This sucks, but what we can do if the safe operations
are not available?

Fixes: #10063
5 years agofileio: fix error propagation in link_tmpfile()
Lennart Poettering [Tue, 2 Oct 2018 11:34:05 +0000 (13:34 +0200)] 
fileio: fix error propagation in link_tmpfile()

5 years agobus-unit-util: fix parsing of IPAddress{Allow,Deny}
Ronny Chevalier [Fri, 21 Sep 2018 13:59:25 +0000 (14:59 +0100)] 
bus-unit-util: fix parsing of IPAddress{Allow,Deny}

While the config parser correctly handles the case of multiple IPs,
bus_append_cgroup_property was only parsing one IP,
and it would fail with "Failed to parse IP address prefix" when given
a list of IPs.

5 years agoMerge pull request #10246 from keszybz/fuzz-buss
Lennart Poettering [Tue, 2 Oct 2018 13:45:21 +0000 (15:45 +0200)] 
Merge pull request #10246 from keszybz/fuzz-buss

Bus fuzzer

5 years agojournal-upload: add asserts that snprintf does not return an error 10249/head
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 10:46:31 +0000 (12:46 +0200)] 
journal-upload: add asserts that snprintf does not return an error

LGMT complains:
> The size argument of this snprintf call is derived from its return value,
> which may exceed the size of the buffer and overflow.

Let's make sure that r is non-negative. (This shouldn't occur unless the format
string is borked, so let's just add an assert.)
Then, let's reorder the comparison to avoid the potential overflow.

5 years agopid1: remove unnecessary error reassignment
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 10:35:37 +0000 (12:35 +0200)] 
pid1: remove unnecessary error reassignment

LGTM was complaining:
> Comparison is always true because r >= 0.

5 years agoshared/install: avoid overwriting 'r' counter with a partial result
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 10:31:13 +0000 (12:31 +0200)] 
shared/install: avoid overwriting 'r' counter with a partial result

We want to store either the first error or the total number of changes in 'r'.
Instead, we were overwriting this with the return value from
install_info_traverse().

LGTM complained later in the loop that:
> Comparison is always true because r >= 0.

5 years agoPrettify printing of uuids 9898/head
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 13:02:04 +0000 (15:02 +0200)] 
Prettify printing of uuids

I know this a bit over the top, but I'm following reviewers' requests.

5 years agoman: add man page for systemd-id128
Zbigniew Jędrzejewski-Szmek [Tue, 21 Aug 2018 14:25:21 +0000 (16:25 +0200)] 
man: add man page for systemd-id128

5 years agosystemd-id128: a new tool to print machine/boot/invocation/app-specific ids
Zbigniew Jędrzejewski-Szmek [Tue, 21 Aug 2018 14:08:48 +0000 (16:08 +0200)] 
systemd-id128: a new tool to print machine/boot/invocation/app-specific ids

The raison d'etre for this program is printing machine-app-specific IDs. We
provide a library function for that, but not a convenient API. We can hardly
ask people to quickly hack their own C programs or call libsystemd through CFFI
in python or another scripting language if they just want to print an ID.

Verb 'new' was already available as 'journalctl --new-id128', but this makes
it more discoverable.

v2:
- rename binary to systemd-id128
- make --app-specific= into a switch that applies to boot-id and machine-id

5 years agosd-id128: add sd_id128_get_boot_app_specific()
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 12:25:24 +0000 (14:25 +0200)] 
sd-id128: add sd_id128_get_boot_app_specific()

5 years agojournalctl: move generate_new_id128() to shared
Zbigniew Jędrzejewski-Szmek [Tue, 21 Aug 2018 13:38:04 +0000 (15:38 +0200)] 
journalctl: move generate_new_id128() to shared

5 years agoicmp6-util: stop ignoring EAGAIN and EINTR in icmp6_receive
Evgeny Vereshchagin [Mon, 1 Oct 2018 22:37:17 +0000 (22:37 +0000)] 
icmp6-util: stop ignoring EAGAIN and EINTR in icmp6_receive

The code handling the errors was originally part of ndisc_recv, which,
being an event handler, would be simply turned off if it returned a negative
error code. It's no longer necessary. Plus, it helps avoid passing
an uninitialized value to radv_send.

Closes https://github.com/systemd/systemd/issues/10223.

5 years agojournal-verify: add comment and silence LGTM warning
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 10:26:23 +0000 (12:26 +0200)] 
journal-verify: add comment and silence LGTM warning

5 years agoboot: change multiplication order
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 10:17:21 +0000 (12:17 +0200)] 
boot: change multiplication order

LGTM was complaining:
> Multiplication result may overflow 'unsigned int' before it is converted to 'unsigned long'.

5 years agobasic/hexdecoct: check for overflow
Zbigniew Jędrzejewski-Szmek [Tue, 2 Oct 2018 10:15:22 +0000 (12:15 +0200)] 
basic/hexdecoct: check for overflow

LGTM was complaining:
> Multiplication result may overflow 'int' before it is converted to 'long'.
Fix this by changing all types to ssize_t and add a check for overflow
while at it.

5 years agobus-message: avoid wrap-around when using length read from message 10246/head
Zbigniew Jędrzejewski-Szmek [Thu, 23 Aug 2018 12:48:40 +0000 (14:48 +0200)] 
bus-message: avoid wrap-around when using length read from message

We would read (-1), and then add 1 to it, call message_peek_body(..., 0, ...),
and when trying to make use of the data.

The fuzzer test case is just for one site, but they all look similar.

v2: fix two UINT8_MAX/UINT32_MAX mismatches founds by LGTM

5 years agobus-message: return -EBADMSG not -EINVAL on invalid !gvariant messages
Zbigniew Jędrzejewski-Szmek [Sat, 11 Aug 2018 09:43:09 +0000 (11:43 +0200)] 
bus-message: return -EBADMSG not -EINVAL on invalid !gvariant messages

5 years agofuzz-bus-message: add two test cases that pass now
Zbigniew Jędrzejewski-Szmek [Sat, 11 Aug 2018 09:31:45 +0000 (11:31 +0200)] 
fuzz-bus-message: add two test cases that pass now

It seems that they got fixed by one of the patches. Let's add them
just in case.

5 years agobus-message: also properly copy struct signature when skipping
Zbigniew Jędrzejewski-Szmek [Sat, 11 Aug 2018 07:02:48 +0000 (09:02 +0200)] 
bus-message: also properly copy struct signature when skipping

The change is similar to that in the previous commit, but I don't have
a reproducer / test case case for this one, so I'm keeping it seperate.

5 years agobus-message: fix skipping of array fields in !gvariant messages
Zbigniew Jędrzejewski-Szmek [Sat, 11 Aug 2018 06:32:20 +0000 (08:32 +0200)] 
bus-message: fix skipping of array fields in !gvariant messages

We copied part of the string into a buffer that was off by two.
If the element signature had length one, we'd copy 0 bytes and crash when
looking at the "first" byte. Otherwise, we would crash because strncpy would
not terminate the string.

5 years agobus-message: output debug information about offset troubles
Zbigniew Jędrzejewski-Szmek [Fri, 3 Aug 2018 16:05:27 +0000 (18:05 +0200)] 
bus-message: output debug information about offset troubles

5 years agotest-bus-gvariant: turn on debug output
Zbigniew Jędrzejewski-Szmek [Fri, 3 Aug 2018 16:04:02 +0000 (18:04 +0200)] 
test-bus-gvariant: turn on debug output

I thought the test was wrong, but it turns out one of my patches was at
fault. But this helps to diagnose issues.

5 years agobus-message: drop asserts in functions which are wrappers for varargs version
Zbigniew Jędrzejewski-Szmek [Fri, 3 Aug 2018 14:36:51 +0000 (16:36 +0200)] 
bus-message: drop asserts in functions which are wrappers for varargs version

The function does no processing on it's own, and just forwards arguments
to the other function. Let's just use the asserts there.

5 years agobus-message: fix calculation of offsets table for arrays
Zbigniew Jędrzejewski-Szmek [Fri, 3 Aug 2018 12:46:57 +0000 (14:46 +0200)] 
bus-message: fix calculation of offsets table for arrays

This is similar to the grandparent commit 'fix calculation of offsets table',
except that now the change is for array elements. Same story as before: we need
to make sure that the offsets increase enough taking alignment into account.

While at it, rename 'p' to 'previous' to match similar code in other places.

5 years agobus-message: remove duplicate assignment
Zbigniew Jędrzejewski-Szmek [Thu, 2 Aug 2018 12:25:31 +0000 (14:25 +0200)] 
bus-message: remove duplicate assignment

5 years agobus-message: fix calculation of offsets table
Zbigniew Jędrzejewski-Szmek [Thu, 2 Aug 2018 12:25:11 +0000 (14:25 +0200)] 
bus-message: fix calculation of offsets table

The offsets specify the ends of variable length data. We would trust the
incoming data, putting the offsets specified in our message
into the offsets tables after doing some superficial verification.
But when actually reading the data we apply alignment, so we would take
the previous offset, align it, making it bigger then current offset, and
then we'd try to read data of negative length.

In the attached example, the message specifies the following offsets:
[1, 4]
but the alignment of those items is
[1, 8]
so we'd calculate the second item as starting at 8 and ending at 4.

5 years agobus: do not print (null) if the message has unknown type
Zbigniew Jędrzejewski-Szmek [Wed, 1 Aug 2018 22:46:20 +0000 (00:46 +0200)] 
bus: do not print (null) if the message has unknown type