Yu Watanabe [Sat, 10 Nov 2018 08:13:11 +0000 (17:13 +0900)]
id128,analyze: fix layout of help message
Evgeny Vereshchagin [Sat, 10 Nov 2018 08:10:49 +0000 (09:10 +0100)]
basic: make rdrand64 a little bit more MSAn-friendly
MSan doesn't instrument inline asm calls so let's help it
by marking err as initialized manually.
Fixes: https://github.com/systemd/systemd/issues/10714.
Evgeny Vereshchagin [Fri, 9 Nov 2018 23:45:00 +0000 (00:45 +0100)]
travis: treat warnings as errors while building systemd
Michael Biebl [Fri, 9 Nov 2018 20:39:43 +0000 (21:39 +0100)]
man: fix system.generator in systemd.unit
Fixes: #10713
Zbigniew Jędrzejewski-Szmek [Fri, 9 Nov 2018 19:49:31 +0000 (20:49 +0100)]
Merge pull request #10306 from poettering/nspawn-ref-unref
nspawn scope lifecycle fixes
Zbigniew Jędrzejewski-Szmek [Fri, 9 Nov 2018 19:46:45 +0000 (20:46 +0100)]
Merge pull request #10711 from poettering/sd-bus-close-man
sd-bus: add docs for a couple of sd-bus APIs
Lennart Poettering [Sat, 6 Oct 2018 17:16:17 +0000 (19:16 +0200)]
sd-path: drop redundant "= 0ULL" assignment in enum
This has exactly zero effect as the type of an enum is not derived from
the integer types assigned to its items.
Lennart Poettering [Mon, 8 Oct 2018 13:46:04 +0000 (15:46 +0200)]
TODO
Lennart Poettering [Mon, 8 Oct 2018 13:44:22 +0000 (15:44 +0200)]
core: expose bus client names currently reffing a unit as property
This is useful for debugging client-side ref counting of units: for each
ref taken on a unit the client's sender name is listed. If a client has
multiple refs on the same unit it is listed multiple times.
Lennart Poettering [Sun, 7 Oct 2018 12:50:11 +0000 (14:50 +0200)]
machined: rework referencing of machine scopes from machined, too
When a machine scope is registered by machined, let's add a reference to
it, and change the GC mode so that the unit is cleaned up as soon as
machined drops the reference, regardless of the fail state.
Fixes: #2809
Lennart Poettering [Sat, 6 Oct 2018 18:31:17 +0000 (20:31 +0200)]
man: document sd_bus_attach_event()
Lennart Poettering [Sat, 6 Oct 2018 17:15:57 +0000 (19:15 +0200)]
man: document sd_bus_flush_close_unref()
Lennart Poettering [Sat, 6 Oct 2018 17:05:48 +0000 (19:05 +0200)]
man: document sd_bus_close() + sd_bus_flush()
Lennart Poettering [Fri, 5 Oct 2018 20:56:40 +0000 (22:56 +0200)]
nspawn: rework how we allocate/kill scopes
Fixes: #6347
Lennart Poettering [Fri, 5 Oct 2018 20:56:20 +0000 (22:56 +0200)]
nspawn: merge two variable declaration lines
Lennart Poettering [Fri, 5 Oct 2018 20:54:57 +0000 (22:54 +0200)]
nspawn: simplify machine terminate bus call
We have the machine name anyway, let's use TerminateMachine() on
machined's Manager object directly with it. That way it's a single
method call only, instead of two, to terminate the machine.
Lennart Poettering [Sat, 6 Oct 2018 16:45:58 +0000 (18:45 +0200)]
nspawn: make use of the new sd_bus_set_close_on_exit() call in nspawn
Lennart Poettering [Sat, 6 Oct 2018 16:43:28 +0000 (18:43 +0200)]
sd-bus: make "close+flush-on-exit" optional when using sd-event with sd-bus
This adds a new pair of API calls sd_bus_set_close_on_exit() and
sd_bus_get_close_on_exit(). They control whether an sd_bus object
attached to a an sd-event loop shall automatically be flushed/closed
when the event loop goes down. Usually that's a good thing, except for
very few cases where the bus connection is longer living than the event
loop it is attached on. Specifically, this is the case for nspawn, where
we run the event loop only while the container is up, but afterwards
still want to be able to use the bus connection.
Lennart Poettering [Fri, 5 Oct 2018 21:04:51 +0000 (23:04 +0200)]
unit: enqueue cgroup empty check event if the last ref on a unit is dropped
Lennart Poettering [Fri, 5 Oct 2018 20:50:25 +0000 (22:50 +0200)]
pid1: add a new AbandonScope() method call on the Manager object
This is the same as Abandon() on the Scope object, but saves clients
from first translating a unit name into a unit object path. This logic
matches how all the other unit methods have counterparts on the Manager
object too (e.g. StopUnit() on the Manager object matching Stop() on the
Unit object), this one was simply forgotten so far.
Frantisek Sumsal [Fri, 9 Nov 2018 11:47:30 +0000 (12:47 +0100)]
tests: keep SYS_PTRACE when running under ASan
Lennart Poettering [Fri, 9 Nov 2018 13:49:37 +0000 (14:49 +0100)]
Merge pull request #10695 from yuwata/fuzz-network-fixes
network: fix recent issues found by oss-fuzz
Yu Watanabe [Fri, 9 Nov 2018 02:45:43 +0000 (11:45 +0900)]
fuzz: add testcases of recent issues
Yu Watanabe [Fri, 9 Nov 2018 02:43:50 +0000 (11:43 +0900)]
network: fix potential segfault in network_free()
Yu Watanabe [Fri, 9 Nov 2018 02:42:11 +0000 (11:42 +0900)]
network: fix offset for IPv6MTUByte=
Fixes oss-fuzz#11302 and oss-fuzz#11314.
Evgeny Vereshchagin [Thu, 8 Nov 2018 22:43:57 +0000 (01:43 +0300)]
Merge pull request #10678 from evverx/more-travis-tweaks
travis: also rebuild everything with ASan and UBSan and install dependencies necessary for running parse-hwdb.py
Lennart Poettering [Thu, 18 Oct 2018 08:02:00 +0000 (10:02 +0200)]
cgroup: actually reset the cgroup invalidation mask after we made our changes
Previously we never unmasked the mask after it was set once. Let's fix
that.
Lennart Poettering [Thu, 8 Nov 2018 11:27:39 +0000 (12:27 +0100)]
unit: replace three non-type-safe macros by type-safe inline functions
Behaviour is prett ymuch the same, but there's some additional type
checking done on the input parameters.
(In the case of UNIT_WRITE_FLAGS_NOOP() the C compiler won't actually do
the type checking necessarily, but static chckers at least could)
Evgeny Vereshchagin [Thu, 8 Nov 2018 12:45:46 +0000 (13:45 +0100)]
travis: use 3 times the normal timeout when the tests are run under ASan+UBSan
Evgeny Vereshchagin [Thu, 8 Nov 2018 12:40:56 +0000 (13:40 +0100)]
travis.yml: replace test-capability with a script exiting with 77
The test is currently failing when run under ASan in a docker container:
```
--- command ---
SYSTEMD_KBD_MODEL_MAP='/build/src/locale/kbd-model-map' PATH='/build/build:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' SYSTEMD_LANGUAGE_FALLBACK_MAP='/build/src/locale/language-fallback-map' /build/build/test-capability
--- stderr ---
have ambient caps: yes
Capabilities:= cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend,cap_audit_read+eip
Capabilities:= cap_dac_override,cap_net_raw+ep
==7021==LeakSanitizer has encountered a fatal error.
==7021==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
==7021==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
Assertion 'WIFEXITED(status) && WEXITSTATUS(status) == 0' failed at ../src/test/test-capability.c:71, function fork_test(). Aborting.
-------
```
https://api.travis-ci.org/v3/job/
452349948/log.txt
Frantisek Sumsal [Thu, 8 Nov 2018 11:47:07 +0000 (12:47 +0100)]
travis: run ASan job in parallel with the standard one
Evgeny Vereshchagin [Thu, 8 Nov 2018 00:28:11 +0000 (01:28 +0100)]
travis: UBSan should be every C programmer's friend so let's build systemd with it too
Evgeny Vereshchagin [Wed, 7 Nov 2018 22:24:16 +0000 (23:24 +0100)]
test: initialize hwdb so that the test won't try to free memory it has never allocated
See https://github.com/systemd/systemd/pull/10678#issuecomment-
436790906.
Evgeny Vereshchagin [Wed, 7 Nov 2018 22:01:27 +0000 (23:01 +0100)]
travis: move the ASan part into a separate stage
Evgeny Vereshchagin [Wed, 7 Nov 2018 21:23:46 +0000 (22:23 +0100)]
travis: also rebuild everything with ASan
It should help to catch issues like https://github.com/systemd/systemd/issues/10677.
Evgeny Vereshchagin [Wed, 7 Nov 2018 21:17:51 +0000 (22:17 +0100)]
travis: install dependencies necessary for running parse-hwdb.py
Zbigniew Jędrzejewski-Szmek [Thu, 8 Nov 2018 12:33:02 +0000 (13:33 +0100)]
Merge pull request #10676 from poettering/rdrand-everywhere
prefer RDRAND over getrandom() and /dev/urandom when we don't need the very best randomness
Lennart Poettering [Thu, 8 Nov 2018 11:36:06 +0000 (12:36 +0100)]
Merge pull request #10651 from yuwata/fix-10598
conf-parser: ignore trailing back-slash in comment
Lennart Poettering [Thu, 8 Nov 2018 11:35:39 +0000 (12:35 +0100)]
Merge pull request #10687 from mrc0mmand/fix-test-capabilities
Fix test-capability
Frantisek Sumsal [Thu, 8 Nov 2018 09:26:01 +0000 (10:26 +0100)]
travis: drop the workaround for test-capability
Frantisek Sumsal [Thu, 8 Nov 2018 08:40:13 +0000 (09:40 +0100)]
tests: drop the precondition check for inherited flag
Docker's default capability set has the inherited flag already
set - that breaks tests which expect otherwise. Let's just
drop the check and run the test anyway.
Fixes #10663
Yu Watanabe [Thu, 8 Nov 2018 04:02:45 +0000 (13:02 +0900)]
core/device: use LIST_FOREACH_AFTER() or friend
Lennart Poettering [Thu, 8 Nov 2018 08:33:31 +0000 (09:33 +0100)]
unit: make UNIT() cast function deal with NULL pointers
Fixes: #10681
Zbigniew Jędrzejewski-Szmek [Thu, 8 Nov 2018 08:36:52 +0000 (09:36 +0100)]
man: document the details of continuations and comments
Yu Watanabe [Tue, 6 Nov 2018 04:22:09 +0000 (13:22 +0900)]
conf-parser: ignore trailing back-slash in comment
Fixes #10598.
Lennart Poettering [Wed, 7 Nov 2018 18:46:18 +0000 (19:46 +0100)]
random-util: optionally allow randomness to be generated via RDRAND
We only use this when we don't require the best randomness. The primary
usecase for this is UUID generation, as this means we don't drain
randomness from the kernel pool for them. Since UUIDs are usually not
secrets RDRAND should be goot enough for them to avoid real-life
collisions.
Lennart Poettering [Wed, 7 Nov 2018 18:31:39 +0000 (19:31 +0100)]
random-util: introduce RANDOM_DONT_DRAIN
Originally, the high_quality_required boolean argument controlled two
things: whether to extend any random data we successfully read with
pseudo-random data, and whether to return -ENODATA if we couldn't read
any data at all.
The boolean got replaced by RANDOM_EXTEND_WITH_PSEUDO, but this name
doesn't really cover the second part nicely. Moreover hiding both
changes of behaviour under a single flag is confusing. Hence, let's
split this part off under a new flag, and use it from random_bytes().
Lennart Poettering [Wed, 7 Nov 2018 18:14:47 +0000 (19:14 +0100)]
random-util: if zero random bytes are requested we can always fulfill the request
Lennart Poettering [Wed, 7 Nov 2018 18:04:04 +0000 (19:04 +0100)]
random-util: optionally enable blocking getrandom() behaviour
When generating the salt for the firstboot password logic, let's use
getrandom() blocking mode, and insist in the very best entropy.
Lennart Poettering [Wed, 7 Nov 2018 17:40:26 +0000 (18:40 +0100)]
random-util: change high_quality_required bool parameter into a flags parameter
No change in behaviour, just some refactoring.
Lennart Poettering [Wed, 7 Nov 2018 17:52:41 +0000 (18:52 +0100)]
random-util: fix indentation
Lennart Poettering [Wed, 7 Nov 2018 17:37:13 +0000 (18:37 +0100)]
random-util: handle if getrandom() returns 0
This should normally not happen, but given that the man page suggests
something about this in the context of interruption, let's handle this
and propagate an I/O error.
Lennart Poettering [Wed, 7 Nov 2018 17:27:57 +0000 (18:27 +0100)]
random-util: rename acquire_random_bytes() → genuine_random_bytes()
It's more descriptive, since we also have a function random_bytes()
which sounds very similar.
Also rename pseudorandom_bytes() to pseudo_random_bytes(). This way the
two functions are nicely systematic, one returning genuine random bytes
and the other pseudo random ones.
Lennart Poettering [Thu, 8 Nov 2018 08:37:35 +0000 (09:37 +0100)]
Merge pull request #10682 from yuwata/fix-oss-fuzz-network-issues
network: fix memleak
Yu Watanabe [Thu, 8 Nov 2018 05:08:10 +0000 (14:08 +0900)]
core: introduce exec_params_clear()
Follow-up for
1ad6e8b302e87b6891a2bfc35ad397b0afe3d940.
Fixes #10677.
Matthew Leeds [Thu, 8 Nov 2018 03:41:06 +0000 (19:41 -0800)]
man: Fix implicit dep info for timer units (#10679)
This reorganizes the systemd.timer man page so that it doesn't claim
there are no implicit dependencies right after specifying the implicit
dependencies, and so that it matches the other man pages for units. This
fixes a mistake introduced by commit
aed5cb03db.
Yu Watanabe [Thu, 8 Nov 2018 03:31:02 +0000 (12:31 +0900)]
fuzz: add a testcase for oss-fuzz#11285
Yu Watanabe [Thu, 8 Nov 2018 03:30:00 +0000 (12:30 +0900)]
network: adds missing strv_free()
Fixes oss-fuzz#11285.
Yu Watanabe [Thu, 8 Nov 2018 03:29:38 +0000 (12:29 +0900)]
network: make config_parse_radv_search_domains() log error in dns_name_apply_idna()
Yu Watanabe [Thu, 8 Nov 2018 03:15:09 +0000 (12:15 +0900)]
fuzz: add more testcases of already fixed issue about multiple netdev kind
This adds testcases of oss-fuzz#11286, oss-fuzz#11287, oss-fuzz#11296,
oss-fuzz#11297, and oss-fuzz#11299.
The issue was fixed by
62facba19ad645df7fb425ce170bdbda208b303c.
Zbigniew Jędrzejewski-Szmek [Wed, 7 Nov 2018 18:31:31 +0000 (19:31 +0100)]
Merge pull request #10670 from yuwata/oss-fuzz-netdev-fixes
network: ignore multiple assignment of netdev kind
Steven Allen [Wed, 7 Nov 2018 16:29:21 +0000 (08:29 -0800)]
logind: fix compilation without utmp (#10674)
Jan Synacek [Mon, 8 Oct 2018 13:14:38 +0000 (15:14 +0200)]
ask-password: improve log message when inotify limit is reached
When inotify_add_watch() fails because of the inotify limit, errno is
set to ENOSPC and then gets shown to users as "No space left on device".
That is very confusing and requires in-depth knowledge of the C library.
Therefore, show user-friendly message when inotify limit is reached.
Fixes #6030.
Zbigniew Jędrzejewski-Szmek [Wed, 7 Nov 2018 11:49:13 +0000 (12:49 +0100)]
Merge pull request #10594 from poettering/env-reload-fix
change handling of environment block of PID1's manager object
Zbigniew Jędrzejewski-Szmek [Wed, 7 Nov 2018 10:34:33 +0000 (11:34 +0100)]
Merge pull request #10610 from yuwata/udev-rules-cleanups
udev-rules: replace udev_device by sd_device
Yu Watanabe [Wed, 7 Nov 2018 09:14:11 +0000 (18:14 +0900)]
network: drop unused members in Wireguard object
Yu Watanabe [Wed, 7 Nov 2018 08:24:41 +0000 (17:24 +0900)]
fuzz: add testcases for oss-fuzz#11279 and #11280
Yu Watanabe [Wed, 7 Nov 2018 08:21:41 +0000 (17:21 +0900)]
network: ignore multiple assignment of netdev kind
Fixes oss-fuzz#11279 and oss-fuzz#11280.
Yu Watanabe [Wed, 7 Nov 2018 05:56:20 +0000 (14:56 +0900)]
Evgeny Vereshchagin [Wed, 7 Nov 2018 07:13:21 +0000 (10:13 +0300)]
Merge pull request #10668 from evverx/travis-tweaks
travis: build and run fuzzers against crash reproducers
Evgeny Vereshchagin [Wed, 7 Nov 2018 06:49:50 +0000 (07:49 +0100)]
travis: show all commands when building systemd
This should prevent Travis CI from terminating build jobs
that don't print anything for more than 10 minutes.
See https://travis-ci.org/systemd/systemd/builds/
451737177.
Evgeny Vereshchagin [Wed, 7 Nov 2018 06:47:22 +0000 (07:47 +0100)]
travis: build and run fuzzers against crash reproducers
Yu Watanabe [Wed, 7 Nov 2018 06:31:26 +0000 (15:31 +0900)]
in-addr-util: make in_addr_default_prefix_from_string() or friend set 0 to prefixlen when family == AF_INET6 (#10665)
Follow-up for
a4798d4e6d88c2be2625ce62d8326eaa9b80f2ee.
Fixes #10662.
Yu Watanabe [Thu, 1 Nov 2018 13:58:42 +0000 (22:58 +0900)]
test: replace udev_device by sd_device in test-udev
Yu Watanabe [Thu, 1 Nov 2018 13:52:39 +0000 (22:52 +0900)]
udevadm-test: replace udev_device by sd_device
Yu Watanabe [Mon, 29 Oct 2018 07:27:13 +0000 (16:27 +0900)]
udev-event: make udev_event_new() take sd_device instead of udev_device
Yu Watanabe [Mon, 29 Oct 2018 07:15:07 +0000 (16:15 +0900)]
udev-rules: replace udev_device by sd_device in udev_rules_apply_to_event()
Yu Watanabe [Mon, 29 Oct 2018 06:39:53 +0000 (15:39 +0900)]
udev-rules: replace two udev_list_entry_foreach() by corresponding FOREACH_DEVICE_*() macros
Yu Watanabe [Thu, 1 Nov 2018 13:30:43 +0000 (22:30 +0900)]
udev-rules: use structured initializer
Yu Watanabe [Thu, 1 Nov 2018 13:28:01 +0000 (22:28 +0900)]
udev-rules: drop unused member file_list in struct udev_rules
Yu Watanabe [Mon, 29 Oct 2018 06:31:19 +0000 (15:31 +0900)]
udev-rules: make import_parent_into_properties() take sd_device
Yu Watanabe [Mon, 29 Oct 2018 06:26:39 +0000 (15:26 +0900)]
udev-rules: make import_file_into_properties() take sd_device
Yu Watanabe [Mon, 29 Oct 2018 06:24:14 +0000 (15:24 +0900)]
udev-rules: make import_property_from_string() take sd_device
Also, this makes the function return negative errno, though its
return value is always ignored.
Yu Watanabe [Mon, 29 Oct 2018 06:16:00 +0000 (15:16 +0900)]
udev: use sd_device for udev_event.dev_parent
Yu Watanabe [Mon, 29 Oct 2018 06:15:25 +0000 (15:15 +0900)]
udev-rules: make match_attr() take sd_device instead of udev_device
Yu Watanabe [Mon, 29 Oct 2018 06:01:39 +0000 (15:01 +0900)]
udev: use sd_device for udev_event.dev_db
Also, this adds sd_device_unref for the object in udev_event_free()
for safety and readability of code.
Yu Watanabe [Thu, 1 Nov 2018 13:19:31 +0000 (22:19 +0900)]
udev-event: make udev_event_new() take sd_netlink and take a reference of that
Yu Watanabe [Thu, 1 Nov 2018 13:13:57 +0000 (22:13 +0900)]
udev-event: make udev_event_new() take exec_delay
Evgeny Vereshchagin [Wed, 7 Nov 2018 03:36:57 +0000 (04:36 +0100)]
travis: make the directory with coverity tools available in a container
Otherwise `coverity.sh build` will fail with
```
find: '/var/tmp/coverity-scan-analysis': No such file or directory
```
See https://travis-ci.org/systemd/systemd/jobs/
451683385.
imayoda [Wed, 7 Nov 2018 03:59:24 +0000 (04:59 +0100)]
hwdb: IdeaPad Miix 310 with another bios version (#10661)
another bios version for same model with portrait screen.
Evgeny Vereshchagin [Wed, 7 Nov 2018 02:11:02 +0000 (05:11 +0300)]
Merge pull request #10644 from mrc0mmand/travis-fix
Fix & re-enable Travis CI
Evgeny Vereshchagin [Wed, 7 Nov 2018 01:25:52 +0000 (02:25 +0100)]
travis: overwrite test-capability with a simple script that is just skipped
so that it will be possible to work on the test failure and try to make
Travis CI work at the same time.
Yu Watanabe [Tue, 6 Nov 2018 23:50:25 +0000 (08:50 +0900)]
Merge pull request #10640 from evverx/networkd-fuzzers
Add a couple of fuzzers for network_load_one and netdev_load_one
Frantisek Sumsal [Tue, 6 Nov 2018 19:55:07 +0000 (20:55 +0100)]
travis: workaround for dnf upgrade
dnf upgrade on Fedora Rawhide pulls in unwanted selinux-policy
packages which breaks the system in several ways (and usually
ends up with crashed systemd)
Evgeny Vereshchagin [Tue, 6 Nov 2018 18:51:45 +0000 (19:51 +0100)]
oss-fuzz.sh: copy dictionaries along with "options" files
We currently don't have any upstream but it doesn't mean that
it should be impossible to experiment with local ones :-)
Evgeny Vereshchagin [Tue, 6 Nov 2018 18:42:29 +0000 (19:42 +0100)]
tests: add a couple of files containing all the sections and directives
This should help the fuzzers to discover code paths faster.
In case anyone is interested, they were generated with the following script
```
perl -aF'/[\s,]+/' -ne '
if (my ($s, $d) = ($F[0] =~ /^([^\s\.]+)\.([^\s\.]+)$/)) { $d{$s}{$d} = 1; }
END { while (my ($key, $value) = each %d) {
printf "[%s]\n%s\n", $key, join("\n", keys(%$value))
}}'
```
by passing src/network/networkd-network-gperf.gperf and
src/network/netdev/netdev-gperf.gperf to it.
Evgeny Vereshchagin [Tue, 6 Nov 2018 18:36:40 +0000 (19:36 +0100)]
tests: replace AdActorSysPrio with AdActorSystemPriority
This is a follow-up to https://github.com/systemd/systemd/pull/10653.
Evgeny Vereshchagin [Sun, 4 Nov 2018 23:39:47 +0000 (00:39 +0100)]
tests: add a reporoducer for https://github.com/systemd/systemd/issues/10639
Evgeny Vereshchagin [Sun, 4 Nov 2018 22:04:43 +0000 (23:04 +0100)]
tests: add some data that can be fed to fuzz-network-parser
Evgeny Vereshchagin [Sun, 4 Nov 2018 22:01:46 +0000 (23:01 +0100)]
tests: add a reproducer for https://github.com/systemd/systemd/issues/10629