platform/upstream/systemd.git
5 years agonetwork: remove routing policy rule from foreign rule database when it is removed
Yu Watanabe [Fri, 22 Feb 2019 04:27:44 +0000 (13:27 +0900)]
network: remove routing policy rule from foreign rule database when it is removed

Previously, When the first link configures rules, it removes all saved
rules, which were configured by networkd previously, in the foreign rule
database, but the rules themselves are still in the database.
Thus, when the second or later link configures rules, it errnously
treats the rules already exist.
This is the root of issue #11280.

This removes rules from the foreign database when they are removed.

Fixes #11280.

5 years agoMerge pull request #11824 from keszybz/fuzzer-fixes
Lennart Poettering [Tue, 26 Feb 2019 18:02:12 +0000 (19:02 +0100)]
Merge pull request #11824 from keszybz/fuzzer-fixes

Fuzzer fixes

5 years agoMerge pull request #11827 from keszybz/pkgconfig-variables
Lennart Poettering [Tue, 26 Feb 2019 17:58:03 +0000 (18:58 +0100)]
Merge pull request #11827 from keszybz/pkgconfig-variables

Allow overriding pkgconfig prefixes

5 years agoMerge pull request #11357 from GiacintoCifelli/dbus_labels
Lennart Poettering [Tue, 26 Feb 2019 16:22:04 +0000 (17:22 +0100)]
Merge pull request #11357 from GiacintoCifelli/dbus_labels

sd-bus: add methods and signals parameter names

5 years agoMerge pull request #11823 from keszybz/more-fuzz-coverage
Lennart Poettering [Tue, 26 Feb 2019 16:21:32 +0000 (17:21 +0100)]
Merge pull request #11823 from keszybz/more-fuzz-coverage

More fuzz coverage

5 years agofuzz-ndisc-rs: avoid assertion failure on samples which dont fit in pipe
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 12:12:53 +0000 (13:12 +0100)]
fuzz-ndisc-rs: avoid assertion failure on samples which dont fit in pipe

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

5 years agofuzz-lldp: avoid assertion failure on samples which dont fit in pipe
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 12:12:53 +0000 (13:12 +0100)]
fuzz-lldp: avoid assertion failure on samples which dont fit in pipe

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

5 years agofuzz-journal-stream: avoid assertion failure on samples which don't fit in pipe
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 12:00:35 +0000 (13:00 +0100)]
fuzz-journal-stream: avoid assertion failure on samples which don't fit in pipe

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11587.
We had a sample which was large enough that write(2) failed to push all the
data into the pipe, and an assert failed. The code could be changed to use
a loop, but then we'd need to interleave writes and sd_event_run (to process
the journal). I don't think the complexity is worth it — fuzzing works best
if the sample is not too huge anyway. So let's just reject samples above 64k,
and tell oss-fuzz about this limit.

5 years agosd-bus: add methods and signals parameter names. Fixes: #1564
Giacinto Cifelli [Tue, 8 Jan 2019 11:14:37 +0000 (12:14 +0100)]
sd-bus: add methods and signals parameter names. Fixes: #1564

5 years agoshared/ask-password-api: when echoing multi-byte characters, print the whole sequence
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 11:43:07 +0000 (12:43 +0100)]
shared/ask-password-api: when echoing multi-byte characters, print the whole sequence

This is untested, but I don't see how the previous code could have worked
for multibyte characters (with echo on).

5 years agobasic/utf8: do not read past end of string when looking for a multi-byte character
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 11:37:40 +0000 (12:37 +0100)]
basic/utf8: do not read past end of string when looking for a multi-byte character

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

5 years agobasic/utf8: change type of function to emphasize that it only looks at one character
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 11:17:12 +0000 (12:17 +0100)]
basic/utf8: change type of function to emphasize that it only looks at one character

5 years agoMerge pull request #11822 from yuwata/fuzz-udev-database
Lennart Poettering [Tue, 26 Feb 2019 09:26:38 +0000 (10:26 +0100)]
Merge pull request #11822 from yuwata/fuzz-udev-database

fuzz: add fuzzer for udev database

5 years agocore: consider non-SERVICE_EXEC_START commands for EXIT_CLEAN_COMMAND
Anita Zhang [Thu, 21 Feb 2019 18:37:40 +0000 (10:37 -0800)]
core: consider non-SERVICE_EXEC_START commands for EXIT_CLEAN_COMMAND

When there are multiple ExecStop= statements, the next command would continue
to run even after TimeoutStopSec= is up and sends SIGTERM. This is because,
unless Type= is oneshot, the exit code/status would evaluate to SERVICE_SUCCESS
in service_sigchld_event()'s call to is_clean_exit(). This success indicates
following commands would continue running until the end of the list
is reached, or another timeout is hit and SIGKILL is sent.

Since long running processes should not be invoked in non-SERVICE_EXEC_START
commands, consider them for EXIT_CLEAN_COMMAND instead of EXIT_CLEAN_DAEMON.
Passing EXIT_CLEAN_COMMAND to is_clean_exit() evaluates the SIGTERM exit
code/status to failure and will stop execution after the first timeout is hit.

Fixes #11431

5 years agoMerge pull request #11780 from yuwata/fix-4211
Zbigniew Jędrzejewski-Szmek [Tue, 26 Feb 2019 07:31:32 +0000 (08:31 +0100)]
Merge pull request #11780 from yuwata/fix-4211

network: skip .network files earlier when conditions do not match system environment

5 years agofuzz: add a sample for fuzz-udev-database
Yu Watanabe [Tue, 26 Feb 2019 04:21:13 +0000 (13:21 +0900)]
fuzz: add a sample for fuzz-udev-database

5 years agofuzz: add fuzzer for udev database
Yu Watanabe [Tue, 26 Feb 2019 04:10:31 +0000 (13:10 +0900)]
fuzz: add fuzzer for udev database

5 years agosd-device: split device_read_db_internal() into two part
Yu Watanabe [Tue, 26 Feb 2019 03:55:40 +0000 (12:55 +0900)]
sd-device: split device_read_db_internal() into two part

The new device_read_db_internal_filename() will be used by a fuzzer.

5 years agocryptsetup: Treat key file errors as a failed password attempt
Ryan Gonzalez [Sat, 23 Feb 2019 05:45:03 +0000 (23:45 -0600)]
cryptsetup: Treat key file errors as a failed password attempt

6f177c7dc092eb68762b4533d41b14244adb2a73 caused key file errors to immediately fail, which would make it hard to correct an issue due to e.g. a crypttab typo or a damaged key file.

Closes #11723.

5 years agonetwork: assign Network::manager when it is listed to the manager object.
Yu Watanabe [Fri, 22 Feb 2019 00:38:19 +0000 (09:38 +0900)]
network: assign Network::manager when it is listed to the manager object.

Now Network::manager is not necessary during parsing configs.

C.f. 838b2f7a30dbb68f4d6939626a165b313cc94542.

5 years agonetwork: make resolving NetDev names delayed and moved to network_verify()
Yu Watanabe [Thu, 21 Feb 2019 07:40:34 +0000 (16:40 +0900)]
network: make resolving NetDev names delayed and moved to network_verify()

And before resolving NetDev names, check conditions in .network,
and if they do not match the system environment, drop the network
unit earlier.

Fixes #4211.

5 years agonetwork: add debug log when conditions do not match system environment
Yu Watanabe [Thu, 21 Feb 2019 07:41:47 +0000 (16:41 +0900)]
network: add debug log when conditions do not match system environment

5 years agoMerge pull request #11767 from yuwata/network-bridge-enslaved
Lennart Poettering [Mon, 25 Feb 2019 18:29:30 +0000 (19:29 +0100)]
Merge pull request #11767 from yuwata/network-bridge-enslaved

network: extend 'enslaved' state to bridge slave

5 years agomeson: declare version.h as dependency for systemd
Michael Olbrich [Mon, 25 Feb 2019 10:59:23 +0000 (11:59 +0100)]
meson: declare version.h as dependency for systemd

This is a followup to #11815 and adds the last missing dependency.
With this #11565 is hopefully really fixed.

5 years agofuzz-unit-file: also run manager_dump()
Zbigniew Jędrzejewski-Szmek [Mon, 25 Feb 2019 14:45:13 +0000 (15:45 +0100)]
fuzz-unit-file: also run manager_dump()

This should increase coverage a bit.

5 years agofuzz-unit-file: add some directives for stuff coverage reports as not covered
Zbigniew Jędrzejewski-Szmek [Mon, 25 Feb 2019 14:37:40 +0000 (15:37 +0100)]
fuzz-unit-file: add some directives for stuff coverage reports as not covered

Some of those directives appear in the corpus, but without arguments, so maybe
the fuzzing libraries can't trigger the right cases. Let's help them.

5 years agoMerge pull request #11798 from keszybz/mem-sanitizer-fix
Lennart Poettering [Mon, 25 Feb 2019 12:50:56 +0000 (13:50 +0100)]
Merge pull request #11798 from keszybz/mem-sanitizer-fix

meson: make sure preprocesor warnings are not treated as errors

5 years agomeson: declare version.h as dep for various targets that include build.h
Zbigniew Jędrzejewski-Szmek [Sun, 24 Feb 2019 21:49:38 +0000 (22:49 +0100)]
meson: declare version.h as dep for various targets that include build.h

Should fix #11565.

5 years agotest-json: use standard test intro
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 11:05:49 +0000 (12:05 +0100)]
test-json: use standard test intro

5 years agotest-json: avoid deep stack recursion under msan
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 11:05:24 +0000 (12:05 +0100)]
test-json: avoid deep stack recursion under msan

5 years agotest-mountpoint-util: unpoison string allocated by sscanf %ms
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 12:23:57 +0000 (13:23 +0100)]
test-mountpoint-util: unpoison string allocated by sscanf %ms

5 years agoAdd wrapper for __msan_unpoinson() to reduce #ifdeffery
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 12:07:00 +0000 (13:07 +0100)]
Add wrapper for __msan_unpoinson() to reduce #ifdeffery

This isn't really necessary for the subsequent commit, but I expect that we'll
need to unpoison more often once we turn on msan in CI, so I think think this
change makes sense in the long run.

5 years agomeson: make sure preprocesor warnings are not treated as errors
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 10:20:18 +0000 (11:20 +0100)]
meson: make sure preprocesor warnings are not treated as errors

Clang includes -W#warning in -Werror, so the #warning used for msan would
be an error.

v2:
- use -Wno-error=... so that the warning is still emitted, but not as an error.

5 years agoMerge pull request #11796 from yuwata/fuzz-link-parser
Zbigniew Jędrzejewski-Szmek [Mon, 25 Feb 2019 08:55:02 +0000 (09:55 +0100)]
Merge pull request #11796 from yuwata/fuzz-link-parser

fuzz: add fuzzer for .link files

5 years agotools: check all directives even if it detects non-updated files
Yu Watanabe [Fri, 22 Feb 2019 09:00:54 +0000 (18:00 +0900)]
tools: check all directives even if it detects non-updated files

5 years agotools: update check-directives.sh to support fuzz-link-parser
Yu Watanabe [Fri, 22 Feb 2019 05:47:36 +0000 (14:47 +0900)]
tools: update check-directives.sh to support fuzz-link-parser

5 years agofuzz: add directives.link and 99-default.link for fuzz-link-parser
Yu Watanabe [Fri, 22 Feb 2019 05:45:46 +0000 (14:45 +0900)]
fuzz: add directives.link and 99-default.link for fuzz-link-parser

Also adds several reproducers of errors fixed in earlier commits.

5 years agofuzz: add fuzzer for parsing .link files
Yu Watanabe [Fri, 22 Feb 2019 05:28:08 +0000 (14:28 +0900)]
fuzz: add fuzzer for parsing .link files

This also renames load_link() to link_load_one()

5 years agofuzz: use fflush() and drop unnecessary rewind()
Yu Watanabe [Mon, 25 Feb 2019 03:02:17 +0000 (12:02 +0900)]
fuzz: use fflush() and drop unnecessary rewind()

5 years agoudev/ethtool: fix error detection of ethtool_link_mode_bit_from_string()
Yu Watanabe [Mon, 25 Feb 2019 03:35:40 +0000 (12:35 +0900)]
udev/ethtool: fix error detection of ethtool_link_mode_bit_from_string()

5 years agoudev: fix memleak in conditions for .link file
Yu Watanabe [Fri, 22 Feb 2019 06:16:47 +0000 (15:16 +0900)]
udev: fix memleak in conditions for .link file

5 years agoudev/net: drop .link files earlier when their conditions do not match system environment
Yu Watanabe [Mon, 25 Feb 2019 02:54:50 +0000 (11:54 +0900)]
udev/net: drop .link files earlier when their conditions do not match system environment

5 years agoudev/net: use structured initializer at one more place
Yu Watanabe [Mon, 25 Feb 2019 02:53:57 +0000 (11:53 +0900)]
udev/net: use structured initializer at one more place

5 years agoudev/net: use size_t for index at one more place
Yu Watanabe [Mon, 25 Feb 2019 02:51:32 +0000 (11:51 +0900)]
udev/net: use size_t for index at one more place

5 years agoudev/net: ignore errors in loading .link files but warn about that
Yu Watanabe [Mon, 25 Feb 2019 02:50:57 +0000 (11:50 +0900)]
udev/net: ignore errors in loading .link files but warn about that

5 years agoudev/net: shorten load_link() a little bit
Yu Watanabe [Mon, 25 Feb 2019 02:48:39 +0000 (11:48 +0900)]
udev/net: shorten load_link() a little bit

5 years agoudev: drop unused Ethernet section
Yu Watanabe [Fri, 22 Feb 2019 04:57:31 +0000 (13:57 +0900)]
udev: drop unused Ethernet section

5 years agoman: update explanation about operational state of network interfaces
Yu Watanabe [Thu, 21 Feb 2019 01:07:02 +0000 (10:07 +0900)]
man: update explanation about operational state of network interfaces

5 years agoman: mention that LinkLocalAddressing= is disabled by default when Bridge= is set
Yu Watanabe [Thu, 21 Feb 2019 01:04:25 +0000 (10:04 +0900)]
man: mention that LinkLocalAddressing= is disabled by default when Bridge= is set

5 years agotest-network: add more tests for IgnoreCarrierLoss=
Yu Watanabe [Wed, 20 Feb 2019 03:45:40 +0000 (12:45 +0900)]
test-network: add more tests for IgnoreCarrierLoss=

Suggested by @amishmm in #9262.

5 years agotest-network: add more tests for Bridge=
Yu Watanabe [Wed, 20 Feb 2019 02:33:00 +0000 (11:33 +0900)]
test-network: add more tests for Bridge=

5 years agonetwork: make bridge master also follow operstates of slave interfaces
Yu Watanabe [Wed, 20 Feb 2019 01:31:15 +0000 (10:31 +0900)]
network: make bridge master also follow operstates of slave interfaces

If one of bridge slaves is in off, no-carrier, or dormant, then
operstate of the bridge master is set to degraded.

5 years agonetwork: extend 'enslaved' state to bridge slave interfaces
Yu Watanabe [Fri, 15 Feb 2019 03:35:30 +0000 (12:35 +0900)]
network: extend 'enslaved' state to bridge slave interfaces

Currently, the interface's operstate is set to 'enslaved' only when
it is managed by networkd.

5 years agonetwork: disable LinkLocalAddressing= and IPv6AcceptRA= on bridge slaves by default
Yu Watanabe [Wed, 20 Feb 2019 01:17:11 +0000 (10:17 +0900)]
network: disable LinkLocalAddressing= and IPv6AcceptRA= on bridge slaves by default

If they are not explicitly configured, then let's disable these
functionality on bridge slaves.

5 years agonetwork: do not disable dynamic addressing for bridge slaves
Yu Watanabe [Wed, 20 Feb 2019 01:07:20 +0000 (10:07 +0900)]
network: do not disable dynamic addressing for bridge slaves

This effectively reverts 5971cb9de9081b537945d28895df70992e5664d0 and
2b00a4e03dc375465de7f60f3a6937cbe8ffdf31.

Usually, it is not necessary to assign addresses to bridge slaves,
but such functionality is supported by kernel. If users explicitly
request such configuration, networkd should support that.

5 years agonetwork: fix invalid memory access
Yu Watanabe [Wed, 20 Feb 2019 02:32:29 +0000 (11:32 +0900)]
network: fix invalid memory access

This fixes a bug introduced by 959f65d32ec15cf84afe3efff1a18b0987b56c60.

5 years agoMerge pull request #11808 from yuwata/fix-11806
Frantisek Sumsal [Sun, 24 Feb 2019 20:25:34 +0000 (21:25 +0100)]
Merge pull request #11808 from yuwata/fix-11806

test-network: testing with two bond slaves

5 years agotest-network: testing with two bond slaves
Yu Watanabe [Wed, 20 Feb 2019 06:04:15 +0000 (15:04 +0900)]
test-network: testing with two bond slaves

5 years agologind: don't print warning when user@.service template is masked
Michal Sekletar [Fri, 22 Feb 2019 14:50:55 +0000 (15:50 +0100)]
logind: don't print warning when user@.service template is masked

User instance of systemd is optional feature and if user@.service
template is masked then administrator most likely doesn't want --user
instances of systemd for logged in users. We don't need to be verbose
about it.

5 years agoFix manpage typo: abrubtly
Chris [Fri, 22 Feb 2019 15:47:31 +0000 (10:47 -0500)]
Fix manpage typo: abrubtly

Fix a minor typo: abrubtly -> abruptly.

5 years agoMerge pull request #11797 from keszybz/analyze-calendar-highlight
Lennart Poettering [Fri, 22 Feb 2019 14:59:22 +0000 (15:59 +0100)]
Merge pull request #11797 from keszybz/analyze-calendar-highlight

Highlight in systemd-analyze calendar

5 years agologind: udev rule for Parallels video adapter
Roman Kulikov [Tue, 15 Jan 2019 16:05:18 +0000 (19:05 +0300)]
logind: udev rule for Parallels video adapter

This enables graphical capability for a video adapter of Parallels
virtualization platform (Parallels Desktop for Mac product) which is not
a DRM device at the moment.

This fixes GUI in Fedora 29 guest on Parallels Desktop where gdm now
strictly checks for CanGraphical property of a seat, see [1].

Should be noted that there's no in-kernel driver for Parallels video at
the moment so device matching is done by vid/pid.

[1] https://gitlab.gnome.org/GNOME/gdm/merge_requests/37

5 years agomkosi: (Archlinux) increase the size of root partition.
Taro Yamada [Fri, 22 Feb 2019 08:16:34 +0000 (17:16 +0900)]
mkosi: (Archlinux) increase the size of root partition.

Currently "mkosi --default .mkosi/mkosi.arch" fails to build the image due to pacman error:

"error: Partition /var/tmp/mkosi-xxx/root too full: yyy blocks needed, zzz blocks free"
"error: not enough free disk space"
"error: failed to commit transaction (not enough free disk space)"

So increase the size to 3G.

5 years agoMerge pull request #11781 from yuwata/udev-rule-continuation-fix
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 08:51:50 +0000 (09:51 +0100)]
Merge pull request #11781 from yuwata/udev-rule-continuation-fix

udev-rules: fix line continuation

5 years agoanalyze: add color highlighting when printing calendar elapses
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 08:29:23 +0000 (09:29 +0100)]
analyze: add color highlighting when printing calendar elapses

With multiple iterations, I found it hard to pick out the interesting bits in
the column of text. I tried plain highlighting first, but it doesn't seem
enough. But blue/yellow makes it easy to jump to the right iteration.

5 years agoanalyze: split out loop innards into a separate function
Zbigniew Jędrzejewski-Szmek [Fri, 22 Feb 2019 08:18:42 +0000 (09:18 +0100)]
analyze: split out loop innards into a separate function

This was intended to be just a refactoring, but it also fixes a minor bug:
after printing "never", we would skip subsequent expressions:

$ systemd-analyze calendar --iterations=20 @0 @1
systemd-analyze calendar --iterations=20 @0 @1
  Original form: @0
Normalized form: 1970-01-01 00:00:00 UTC
    Next elapse: never

(the second expression was skipped).

5 years agoanalyze: optionally, show more than one elapse time for calendar expressions
Lennart Poettering [Thu, 21 Feb 2019 11:07:05 +0000 (12:07 +0100)]
analyze: optionally, show more than one elapse time for calendar expressions

5 years agounits: re-drop ProtectHostname from systemd-hostnamed.service (#11792)
Martin Pitt [Fri, 22 Feb 2019 07:04:37 +0000 (08:04 +0100)]
units: re-drop ProtectHostname from systemd-hostnamed.service (#11792)

This was an overzealous setting from commit 99894b867f. Without this,
`hostnamectl set-hostname` fails with

    Could not set property: Access denied

as `sethostname()` fails with `EPERM`.

5 years agolibsystemd: check if _POSIX_C_SOURCE is defined
emersion [Thu, 21 Feb 2019 15:19:04 +0000 (16:19 +0100)]
libsystemd: check if _POSIX_C_SOURCE is defined

This can cause issues if sd-event.h is included in a source file that doesn't
define _POSIX_C_SOURCE and is compiled with -Wundef.

5 years agotest-udev: fix alignment and drop unnecessary white spaces
Yu Watanabe [Thu, 21 Feb 2019 09:04:12 +0000 (18:04 +0900)]
test-udev: fix alignment and drop unnecessary white spaces

5 years agotest-udev: add more tests for line continuation
Yu Watanabe [Thu, 21 Feb 2019 09:03:32 +0000 (18:03 +0900)]
test-udev: add more tests for line continuation

5 years agoudev-rules: do not ignore short lines
Yu Watanabe [Thu, 21 Feb 2019 08:29:29 +0000 (17:29 +0900)]
udev-rules: do not ignore short lines

Otherwise, a short line continues the previous continuation.

This fixes a bug introduced by f10aa08e3e48de7dcb71be348f021c6b1385304f.

5 years agohwdb: Add accelerometer orientation quirk for the Medion Akoya E2212T
Hans de Goede [Thu, 21 Feb 2019 11:50:10 +0000 (12:50 +0100)]
hwdb: Add accelerometer orientation quirk for the Medion Akoya E2212T

Add accelerometer orientation quirk for the Medion Akoya E2212T 2-in-1.

5 years agoMerge pull request #11608 from taro-yamada/add_persistent_randmized_delay
Lennart Poettering [Thu, 21 Feb 2019 14:15:37 +0000 (15:15 +0100)]
Merge pull request #11608 from taro-yamada/add_persistent_randmized_delay

core: add "Persistent=delay" to delay persistent timers after boot

5 years agoMerge pull request #11776 from keszybz/networkd-ordered-sets
Lennart Poettering [Thu, 21 Feb 2019 14:15:11 +0000 (15:15 +0100)]
Merge pull request #11776 from keszybz/networkd-ordered-sets

Store domains lists in OrderedSets in networkd

5 years agoMerge pull request #11784 from martinpitt/networkd-tests
Lennart Poettering [Thu, 21 Feb 2019 13:05:26 +0000 (14:05 +0100)]
Merge pull request #11784 from martinpitt/networkd-tests

Various networkd test fixes

5 years agoAdd a work-around for memsan
Zbigniew Jędrzejewski-Szmek [Thu, 21 Feb 2019 06:58:24 +0000 (07:58 +0100)]
Add a work-around for memsan

Fixes #11735.

5 years agonetworkd-test: fix test_dropin()
Martin Pitt [Thu, 21 Feb 2019 11:34:23 +0000 (12:34 +0100)]
networkd-test: fix test_dropin()

 - This test needs resolved, so make sure it is started. In some Debian
   environments it is not.
 - It was an unnecessary, and now failing assumption that name servers
   get atomically written to the resolved's resolv.conf. Wait until both
   expected name servers are in the file.

5 years agonetworkd-test: use a complete domain name in test_route_only_dns()
Martin Pitt [Thu, 21 Feb 2019 11:26:44 +0000 (12:26 +0100)]
networkd-test: use a complete domain name in test_route_only_dns()

Since version 241 (commit ea4678?), querying MX type records for
single-label domains does not actually forward the query to the DNS
server any more. Use "example.com" instead, which is the recommended
test domain anyway.

5 years agonetworkd-test: disable DNSSEC in domain-restricted DNS test
Martin Pitt [Thu, 21 Feb 2019 11:24:16 +0000 (12:24 +0100)]
networkd-test: disable DNSSEC in domain-restricted DNS test

dnsmasq 2.80 changed behaviour when being queried by resolved with
enabled DNSSEC: It returns errors for SOA and DS queries which cause the
entire query to fail. As we don't configure DNSSEC in this test anyway,
just disable it so that we retain compatibility with old and new dnsmasq
versions.

5 years agocore: delay persistent timers by "RandomizedDelaySec=" at boot.
Taro Yamada [Tue, 19 Feb 2019 12:01:50 +0000 (21:01 +0900)]
core: delay persistent timers by "RandomizedDelaySec=" at boot.

Fixes #5659.
Currently, if Persistent=true and the machine is off at the scheduled time of the timer unit, the timer
will be triggered immediately at the next boot even if RandomizedDelaySec= is specified.

As a result, if multiple timers meet that condition, they will be triggered at the same time and too
much CPU/IO work makes boot slow down.

With this commit, if the scheduled time of the persistent timer has already elapsed at boot,
set the time when systemd first started as the scheduled time and RandomizedDelaySec= is applied to it.

5 years agotests: shorten the fuzz test case
Zbigniew Jędrzejewski-Szmek [Thu, 21 Feb 2019 11:30:13 +0000 (12:30 +0100)]
tests: shorten the fuzz test case

The test was failing in Ubuntu CI with a 30s timeout. It makes
sense to keep the file so exercise the set allocation logic, but
we can make it shorter.

5 years agoshared/hashmap: trivial style updates
Zbigniew Jędrzejewski-Szmek [Thu, 21 Feb 2019 09:04:23 +0000 (10:04 +0100)]
shared/hashmap: trivial style updates

5 years agonetworkd: use OrderedSets instead of strvs to store lists of domains
Zbigniew Jędrzejewski-Szmek [Wed, 20 Feb 2019 21:50:25 +0000 (22:50 +0100)]
networkd: use OrderedSets instead of strvs to store lists of domains

We were already using OrderedSets in the manager object, but strvs in the
configuration parsing code. Using sets gives us better scaling when many
domains are used.

In oss-fuzz #13059 the attached reproducer takes approximately 30.5 s to be
parsed. Converting to sets makes this go down to 10s. This is not _vastly_
faster, but using sets seems like a nicer approach anyway. In particular, we
avoid the quadratic de-unification operation after each addition.

5 years agobasic/ordered-set: export networkd function to print string sets
Zbigniew Jędrzejewski-Szmek [Wed, 20 Feb 2019 21:39:47 +0000 (22:39 +0100)]
basic/ordered-set: export networkd function to print string sets

Tests are added.

5 years agobasic/ordered-set: add functions to operate on OrderedSets of strings
Zbigniew Jędrzejewski-Szmek [Wed, 20 Feb 2019 21:29:20 +0000 (22:29 +0100)]
basic/ordered-set: add functions to operate on OrderedSets of strings

5 years agosocket-util: re-implement socket_address_parse_netlink() by using extract_first_word()
Yu Watanabe [Sat, 16 Feb 2019 18:27:57 +0000 (03:27 +0900)]
socket-util: re-implement socket_address_parse_netlink() by using extract_first_word()

This drops support of trailing white space when a multicast group is
specified.

Fixes one of issues in #11738.

5 years agoMerge pull request #11748 from yuwata/fix-11711
Lennart Poettering [Thu, 21 Feb 2019 10:28:35 +0000 (11:28 +0100)]
Merge pull request #11748 from yuwata/fix-11711

network: handle disable_ipv6 sysctl property

5 years agoMerge pull request #11772 from c0d3z3r0/master
Lennart Poettering [Thu, 21 Feb 2019 10:09:35 +0000 (11:09 +0100)]
Merge pull request #11772 from c0d3z3r0/master

Make systemd-boot compliant with the Linux Boot / EFI Handover Protocol

5 years agoresolve: fix null pointer dereferences
Yu Watanabe [Thu, 21 Feb 2019 09:11:20 +0000 (18:11 +0900)]
resolve: fix null pointer dereferences

Follow-up for 8227cfa137d8a930519717b752128b8d035b83e5.

Fixes CID#1398986.

5 years agocgtop: Fix processing of controllers other than CPU
Szabolcs Fruhwald [Wed, 20 Feb 2019 20:38:50 +0000 (12:38 -0800)]
cgtop: Fix processing of controllers other than CPU

After debugging the issue with gdb, I found that the following change

 94ddb08 "cgtop: Still try to get CPU statistics if controller-free"

has introduced a bug, which prevents process(..) method processing
memory and io controllers when cpu_accounting_is_cheap() is true.
The obvious fix is to move this branch to be the last one, keeping
the intended behavior of the above change, without having a negative
effect on the other controllers.

Fixes #11773 [systemd-cgtop no longer shows memory (and io) usage]

5 years agogenerator: rename systemd-mkfs@.service to systemd-makefs@.service
Zbigniew Jędrzejewski-Szmek [Thu, 21 Feb 2019 06:29:25 +0000 (07:29 +0100)]
generator: rename systemd-mkfs@.service to systemd-makefs@.service

The second name was used in documentation, and the first in the code that
generated the unit. 'systemd-makefs' is the name we want, for example for
consistency with the systemd-makefs executable.

In principle this breaks compatibility, but in practice this is unlikely to be
noticeable. Each instance of the unit is created by writing out a full
definition, so the template was never defined. So the name could only be used
for ordering, and there is not reason to order things against this unit from
the outside: the ordering would rather be against the final mount unit.

Fixes #11769.

5 years agotest-network: add testcases for handling disable_ipv6 sysctl property
Yu Watanabe [Mon, 18 Feb 2019 06:26:26 +0000 (15:26 +0900)]
test-network: add testcases for handling disable_ipv6 sysctl property

5 years agotest-network: update cosmetic workaround
Yu Watanabe [Mon, 18 Feb 2019 06:26:54 +0000 (15:26 +0900)]
test-network: update cosmetic workaround

Almost all tests call copy_unit_to_networkd_unit_path() at first.
So, let's move the line break there.

5 years agonetwork: check whether ipv6 is enabled in sysctl
Yu Watanabe [Mon, 18 Feb 2019 06:00:15 +0000 (15:00 +0900)]
network: check whether ipv6 is enabled in sysctl

Currently, the value is read only once.

Fixes #11711.

5 years agonetwork: use sysctl_read_ip_property()
Yu Watanabe [Mon, 18 Feb 2019 05:47:13 +0000 (14:47 +0900)]
network: use sysctl_read_ip_property()

5 years agosysctl-util: add sysctl_read_ip_property()
Yu Watanabe [Mon, 18 Feb 2019 05:41:43 +0000 (14:41 +0900)]
sysctl-util: add sysctl_read_ip_property()

5 years agonetwork: use sysctl_write_ip_property() and friends
Yu Watanabe [Mon, 18 Feb 2019 05:30:32 +0000 (14:30 +0900)]
network: use sysctl_write_ip_property() and friends

5 years agosysctl-util: introduce sysctl_write_ip_property() and friends
Yu Watanabe [Mon, 18 Feb 2019 04:34:01 +0000 (13:34 +0900)]
sysctl-util: introduce sysctl_write_ip_property() and friends

5 years agoMake systemd-boot compliant with the Linux Boot / EFI Handover Protocol
Michael Niewöhner [Wed, 20 Feb 2019 20:09:09 +0000 (21:09 +0100)]
Make systemd-boot compliant with the Linux Boot / EFI Handover Protocol

The current implementation copied the *complete* header to boot_params,
thus making the kernel ignore many of the fields.

As mentioned in the code comment for the sentinel variable in
bootparam.h a bootloader should only copy the setup_header, set some
fields in boot_params and zero out anything else.

This change makes systemd-boot (mostly) compliant with the Linux Boot
Protocol and the EFI Handover Protocol described in bootparam.h and
Documentation/boot.txt to fix various issues:

- Secure boot not being detected corretly by Linux (#11717)
- tboot error message / warning on boot (#11717)
- Strange purple text color when booting in qemu with OVMF
- Hopefully even more ...