Commit graph

22827 commits

Author SHA1 Message Date
Yu Watanabe b3ae7237c6 sd-resolve: introduce sd_resolve_query_{get,set}_floating() 2018-11-05 13:19:02 +09:00
Yu Watanabe a8319dea1d sd-resolve: introduce sd_resolve_query_{get,set}_destroy_callback() 2018-11-05 13:19:02 +09:00
Franck Bui 1d88bce2a0 coredump: only install coredump.conf when ENABLED_COREDUMP=true 2018-11-02 14:31:12 +01:00
Tobias Jungel 99f68ef02d networkd: add missing bonding options (#10542)
Add support for bonding options system prio, port key and actor system mac.

These options exist in the linux kernel since 4.2
(torvalds/linux@171a42c38c)

Details:
https://www.kernel.org/doc/Documentation/networking/bonding.txt
2018-11-02 10:31:20 +09:00
Yu Watanabe cb700a11d9 network: drop white space in log message 2018-11-01 23:41:29 +09:00
Yu Watanabe 0d7febd002 network: fix hash function for routing policy rule 2018-11-01 23:40:56 +09:00
Yu Watanabe e6b65ab760 network: fix return value of routing_policy_rule_get()
To distinguish source of rule.
2018-11-01 23:38:11 +09:00
Yu Watanabe a6276f0f3f network: fix memleak in routing policy
As set_put() may fail if input is duplicated.
2018-11-01 23:24:20 +09:00
Yu Watanabe 744faf5e4e network: fix memleak in static prefix
Fixes #10608.
2018-11-01 21:46:38 +09:00
Yu Watanabe f19ee68140 network: fix segfault in manager_free()
Fixes #10605.
2018-11-01 20:26:02 +09:00
Lennart Poettering 6619ad889d nspawn: beef up netns checking a bit, for compat with old kernels
Fixes: #10544
2018-10-31 21:42:45 +03:00
Xiang Fan c7b7d74e81 ask-password: check keyring in ask_password_tty and ask_password_agent
A race condition happens when calling ask_password_auto() multiple times
to unlock several disks on boot and effectively no password caching is
utilized. This patch fixes it by polling the cache when waiting for
the password.
2018-10-31 18:26:58 +01:00
Lennart Poettering 45313bd921
Merge pull request #10010 from msekletar/cryptsetup-generator-keydev-followups
cryptsetup-generator: keydev support - followups
2018-10-31 18:26:25 +01:00
Lennart Poettering e2d39e549f nspawn: add proper error message if setns() on network namespace fd fails
Addresses: https://github.com/systemd/systemd/pull/10589#issuecomment-434670595
2018-10-31 18:07:30 +01:00
Lennart Poettering fc03c53653
Merge pull request #10573 from faheel/master
Convert remaining docs to Markdown
2018-10-31 15:15:41 +01:00
Lennart Poettering 0aeff581cc
Merge pull request #10556 from yuwata/udev-event-cleanup-2
udev-event: several fixes for previous PR
2018-10-31 12:10:12 +01:00
Yu Watanabe 21486d9e99 network: also monitor udev 'change' event for network interfaces
If networkd starts earlier than all network interfaces are initialized,
then uninitialized interfaces are staying in pending state and cannot
become up.
With this, such interfaces are started after receiving 'change' event.
2018-10-31 12:08:34 +01:00
Joerg Behrmann 56ef8db9f5 core: apply WorkingDirectory after enforce_user
If WorkingDirectory is on NFS, root might only have the privileges of
nobody and the chdir to the WorkingDirectory might fail, even if the
user running the service would have the proper privileges to chdir to
that directory.

Fixes #10568
2018-10-31 12:07:24 +01:00
Zbigniew Jędrzejewski-Szmek 2f5ed71556 Drop copyright for Marius Vollmer
Ack in #9320.
2018-10-31 09:34:38 +01:00
Yu Watanabe fbd0aea17e dissect: do not store unused devnum 2018-10-31 09:29:51 +09:00
Yu Watanabe 4375dab58d udev-event: fix timeout log messages
Follow-up for e81c3a4c5f.
2018-10-31 09:29:51 +09:00
Yu Watanabe 7af1c7808b udev-event: do not store unused devnum 2018-10-31 09:29:51 +09:00
Yu Watanabe d4a95a952e udev-event: check whether device has devnum before calling udev_node_remove()
This fixes a bug in 'remove' event handling, which was introduced by
eb1f9e30ec, as 'devnum' variable may
not be initialized.
2018-10-31 09:29:51 +09:00
Faheel Ahmad eea984028f docs: Update links to updated docs 2018-10-30 23:01:20 +05:30
Insun fee04d7f3a core: don't drop timer expired but not yet processed when system date is changed
There is difference between time set by the user and real elapsed time because of accuracy feature.
If you change the system date(or time) between these times, the timer drops.

You can easily reproduce it with the following command.
-----------------------------------------------------------
$ systemd-run --on-active=3s ls; sleep 3; date -s "`date`"
-----------------------------------------------------------

In the following command, the problem is rarely reproduced. But it exists.
---------------------------------------------------------------------------------------------
$ systemd-run --on-active=3s --timer-property=AccuracySec=1us ls ; sleep 1; date -s "`date`"
---------------------------------------------------------------------------------------------

Note : Global AccuracySec value.
----------------------------------------------------------------------
$ cat /etc/systemd/system.conf
DefaultTimerAccuracySec=1min
----------------------------------------------------------------------
2018-10-30 15:38:45 +01:00
Lennart Poettering c1b785bb66
Merge pull request #10559 from yuwata/sd-device-prototype-change
sd-device: change prototype of sd_device_get_is_initialized()
2018-10-30 15:36:52 +01:00
Franck Bui 651b3b6c92 core: skip unit deserialization and move to the next one when unit_deserialize() fails
If unit_deserialize() fails (because one read line is overly long), it returns
an error and we would have assumed that the next read would point to the next
unit to deserialize.

But instead unit_deserialize() can leave the file offset in the middle of a
line.

Therefore we need to ignore and skip the current unit in this case too.

While at it, move unit deserialization in a dedicated functions. That should
make the code easier to read.
2018-10-30 14:52:13 +01:00
Lennart Poettering 8cb17a64c4
Merge pull request #10563 from keszybz/lz4-quickfix-quickfix
journal: adapt for new improved LZ4_decompress_safe_partial()
2018-10-30 14:51:55 +01:00
Zbigniew Jędrzejewski-Szmek 029427043b fuzz-compress: add fuzzer for compression and decompression 2018-10-30 11:04:53 +01:00
Zbigniew Jędrzejewski-Szmek e41ef6fd00 journal: adapt for new improved LZ4_decompress_safe_partial()
With lz4 1.8.3, this function can now decompress partial results into a smaller
buffer. The release news don't say anything interesting, but the test case that
was previously failing now works OK.

Fixes #10259.

A test is added. It shows that with *older* lz4, a partial decompression can
occur with the returned size smaller then the requested number of bytes _and_
smaller then the size of the compressed data:

(lz4-libs-1.8.2-1.fc29.x86_64)
Compressed 4194304 → 16464
Decompressed → 4194304
Decompressed partial 12/4194304 → 4194304
Decompressed partial 1/1 → -2 (bad)
Decompressed partial 2/2 → -2 (bad)
Decompressed partial 3/3 → -2 (bad)
Decompressed partial 4/4 → -2 (bad)
Decompressed partial 5/5 → -2 (bad)
Decompressed partial 6/6 → 6 (good)
Decompressed partial 7/7 → 6 (good)
Decompressed partial 8/8 → 6 (good)
Decompressed partial 9/9 → 6 (good)
Decompressed partial 10/10 → 6 (good)
Decompressed partial 11/11 → 6 (good)
Decompressed partial 12/12 → 6 (good)
Decompressed partial 13/13 → 6 (good)
Decompressed partial 14/14 → 6 (good)
Decompressed partial 15/15 → 6 (good)
Decompressed partial 16/16 → 6 (good)
Decompressed partial 17/17 → 6 (good)
Decompressed partial 18/18 → -16459 (bad)

(lz4-libs-1.8.3-1.fc29.x86_64)
Compressed 4194304 → 16464
Decompressed → 4194304
Decompressed partial 12/4194304 → 12
Decompressed partial 1/1 → 1 (good)
Decompressed partial 2/2 → 2 (good)
Decompressed partial 3/3 → 3 (good)
Decompressed partial 4/4 → 4 (good)
...

If we got such a short "successful" decompression in decompress_startswith() as
implemented before this patch, we could be confused and return a false negative
result. But it turns out that this only occurs with small output buffer
sizes. We use greedy_realloc() to manager the buffer, so it is always at least
64 bytes. I couldn't hit a case where decompress_startswith() would actually
return a bogus result. But since the lack of proof is not conclusive, the code
for *older* lz4 is changed too, just to be safe. We cannot rule out that on a
different architecture or with some unlucky compressed string we could hit this
corner case.

The fallback code is guarded by a version check. The check uses a function not
the compile-time define, because there was no soversion bump in lz4 or new
symbols, and we could be compiled against a newer lz4 and linked at runtime
with an older one. (This happens routinely e.g. when somebody upgrades a subset
of distro packages.)
2018-10-30 11:04:51 +01:00
Zbigniew Jędrzejewski-Szmek ba17efce44 test-compress: add test for short decompress_startswith calls
I thought this might fail with lz4 < 1.8.3, but it seems that because of
greedy_realloc, we always use a buffer that is large enough, and it always
passes.
2018-10-30 09:28:51 +01:00
Michal Sekletar 7949dfa73a cryptsetup-generator: allow whitespace characters in keydev specification
For example, <luks.uuid>=/keyfile:LABEL="KEYFILE FS" previously wouldn't
work, because we truncated label at the first whitespace character,
i.e. LABEL="KEYFILE".
2018-10-30 09:18:46 +01:00
Michal Sekletar 579875bc4a cryptsetup-generator: don't return error if target directory already exists 2018-10-30 09:02:34 +01:00
Zbigniew Jędrzejewski-Szmek e0a1d4b049 Drop support for lz4 < 1.3.0
lz4-r130 was released on May 29th, 2015. Let's drop the work-around for older
versions. In particular, we won't test any new code against those ancient
releases, so we shouldn't pretend they are supported.
2018-10-29 21:54:42 +01:00
Evgeny Vereshchagin 28ffcec2cb tests: add an lldp fuzzer
I went through my antique collection of fuzzers the other day
to see which ones I hadn't sent upstream yet. This one
seems to be nice to have and ready to be merged. As far as I can
tell, it hasn't managed to find anything useful yet,
but it's better to be safe than sorry especially when it comes to networking
code :-)
2018-10-29 15:24:16 +00:00
Evgeny Vereshchagin e0f768c356 journal: drop an unused variable clang is complaining about
../../src/systemd/src/journal/journal-file.c:3592:30: warning: unused variable 'p' [-Wunused-variable]
        _cleanup_free_ char *p = NULL;
                             ^
1 warning generated.

This is a follow-up to 6812765891.
2018-10-29 15:21:58 +00:00
Yu Watanabe 5a937ea2f6 sd-device: make sd_device_get_is_initialized() returns is_initialized by return value 2018-10-29 17:33:33 +09:00
Yu Watanabe 78ffb476f2 sd-device: make several sd_device_get_*() accepts NULL pointer for buffer of returned value
When only the existence of the value are important, then we can set
NULL now.
2018-10-29 17:18:00 +09:00
Yu Watanabe 7b32820444
Merge pull request #10551 from keszybz/two-trivial-cleanups
Two trivial cleanups
2018-10-29 12:03:27 +09:00
Yu Watanabe 898ce5e8b8 util: do not assign return value if it is not used (#10552) 2018-10-28 18:41:35 -07:00
Zbigniew Jędrzejewski-Szmek 2b68626089 test-chown-rec: use logging helper here too 2018-10-28 23:28:34 +01:00
Zbigniew Jędrzejewski-Szmek 910fd5317f test-network-tables: remove duplicate line 2018-10-28 18:27:48 +01:00
Zbigniew Jędrzejewski-Szmek 815628cdd4
Merge pull request #10512 from yuwata/udev-event-cleanup
udev-event: replace udev_device by sd_device
2018-10-28 13:00:14 +01:00
Dave Reisner e6b538d066 curl-util: fix error code check from curl_multi_socket_action
After curl 7.20.0, this function never returns negative error codes.
Make this consistent with the other call to this function and only
compare against CURLM_OK.
2018-10-27 12:04:45 +02:00
Yu Watanabe 9c3c438514
Merge pull request #10537 from poettering/sentinelimania
add some missing _sentinel_ decorators
2018-10-27 07:49:28 +09:00
Yu Watanabe 4cade7a15b udev-event: replace udev_device in subst_format_var() by sd_device 2018-10-27 07:25:27 +09:00
Yu Watanabe a315999de6 udev-event: drop prototype of nonexistent function 2018-10-27 07:25:27 +09:00
Yu Watanabe 9204d8023f udev-event: move definition of struct subst_map 2018-10-27 07:25:27 +09:00
Yu Watanabe eb1f9e30ec udev-event: replace udev_device in udev_event_execute_rules() by sd_device
Also, this adds many logs.
2018-10-27 07:25:27 +09:00
Yu Watanabe e52eaf5649 udev-event: move devnode handling logic to a new function
Also, replace udev_device by sd_device.
2018-10-27 07:25:27 +09:00