Commit graph

23022 commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek e67813dde0
Merge pull request #10610 from yuwata/udev-rules-cleanups
udev-rules: replace udev_device by sd_device
2018-11-07 11:34:33 +01:00
Yu Watanabe 1909e9f11d network: drop unused members in Wireguard object 2018-11-07 18:14:11 +09:00
Yu Watanabe 62facba19a network: ignore multiple assignment of netdev kind
Fixes oss-fuzz#11279 and oss-fuzz#11280.
2018-11-07 17:23:50 +09:00
Yu Watanabe c6d8bbb66e
in-addr-util: make in_addr_default_prefix_from_string() or friend set 0 to prefixlen when family == AF_INET6 (#10665)
Follow-up for a4798d4e6d.

Fixes #10662.
2018-11-07 15:31:26 +09:00
Yu Watanabe b74a0b6ae7 test: replace udev_device by sd_device in test-udev 2018-11-07 13:35:03 +09:00
Yu Watanabe 77ad202c72 udevadm-test: replace udev_device by sd_device 2018-11-07 13:35:03 +09:00
Yu Watanabe cf28ad4689 udev-event: make udev_event_new() take sd_device instead of udev_device 2018-11-07 13:35:03 +09:00
Yu Watanabe cf697ec00e udev-rules: replace udev_device by sd_device in udev_rules_apply_to_event() 2018-11-07 13:35:03 +09:00
Yu Watanabe dbea7f24d2 udev-rules: replace two udev_list_entry_foreach() by corresponding FOREACH_DEVICE_*() macros 2018-11-07 13:35:03 +09:00
Yu Watanabe 1017d66bf5 udev-rules: use structured initializer 2018-11-07 13:35:03 +09:00
Yu Watanabe 92b80c6baa udev-rules: drop unused member file_list in struct udev_rules 2018-11-07 13:35:03 +09:00
Yu Watanabe 1ce7fecb4f udev-rules: make import_parent_into_properties() take sd_device 2018-11-07 13:35:03 +09:00
Yu Watanabe 13c7b75f2f udev-rules: make import_file_into_properties() take sd_device 2018-11-07 13:35:03 +09:00
Yu Watanabe 29b5eb5adf 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.
2018-11-07 13:35:03 +09:00
Yu Watanabe f3d241feb2 udev: use sd_device for udev_event.dev_parent 2018-11-07 13:35:03 +09:00
Yu Watanabe 5ba7e79885 udev-rules: make match_attr() take sd_device instead of udev_device 2018-11-07 13:35:03 +09:00
Yu Watanabe 480ecb7d28 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.
2018-11-07 13:35:03 +09:00
Yu Watanabe e0bb2ff94b udev-event: make udev_event_new() take sd_netlink and take a reference of that 2018-11-07 13:35:03 +09:00
Yu Watanabe 0f86dc900e udev-event: make udev_event_new() take exec_delay 2018-11-07 13:35:03 +09:00
Evgeny Vereshchagin 212bd73c78 networkd: make network_load_one "public" and add a fuzzer for it 2018-11-06 19:01:32 +01:00
Evgeny Vereshchagin e27aac11f2 networkd: make netdev_load_one "public" and add a fuzzer for it 2018-11-06 19:01:32 +01:00
Evgeny Vereshchagin 0621f03b13 networkd: remove a weird assertion from network_load_one
The assertion was added in dbffab87f1 but I'm not exactly sure
why. Now it just crashes a fuzzer I wrote. I, of course, could fix the fuzzer
so that it would generate names ending in ".network" if anyone would tell
me why the assertion should be kept here.
2018-11-06 19:01:32 +01:00
Evgeny Vereshchagin 3e180a2516 util: initialize _argtypes in VA_FORMAT_ADVANCE when systemd is built with MSan
This gets around https://github.com/google/sanitizers/issues/992.
2018-11-06 19:01:32 +01:00
Yu Watanabe 49a060aca8
Merge pull request #10654 from poettering/srand-rdrand
random-util.c mini-fixes
2018-11-07 02:03:09 +09:00
Marco Trevisan (Treviño) 6260d28b8a login: Don't mark framebuffer devices as master-of-seat devices
Currently we consider any framebuffer device as enough to have a
valid graphical session, but this might lead to many false postives
like in the case of framebuffer devices that have a linked drm card
which is still in the process of being added, or for vesa fb, and
so it doesn't ensure us that we can have a proper graphical session.

Since these days we normally don't consider anything without a DRM
card able to provide a full graphical session, let's not set this
at this level.
Drivers which can provide a graphical session with the sole fb are
still free to mark any device as `master-of-seat`

Fixes #10435
2018-11-06 20:02:26 +03:00
Lennart Poettering 39adc47495
Merge pull request #10658 from yuwata/udevd-worker-performance
udev: improve performance
2018-11-06 20:01:37 +03:00
Lennart Poettering 9edcbc4f44
Merge pull request #10602 from yuwata/sd-device-logs
update log messages
2018-11-06 19:33:51 +03:00
Lennart Poettering b992109b3e
Merge pull request #10633 from yuwata/sd-resolve-destroy
Another solution to fix wireguard issues
2018-11-06 19:30:59 +03:00
Yu Watanabe ed2e7967be time-util: make parse_sec() not accept "12.34.56"
This also changes the rational number treatment.
So, the limitations introduced by 8079c90333
and f6a178e91d are relaxed.

Fixes #10619.
2018-11-06 19:24:47 +03:00
Yu Watanabe faae64fa3d udevd: increase default number of workers
The uevent handling in udevd is not cpu hungry.
So, let's increase the default number of workers per cpu.
This decrease the number of queued uevents.

Without this commit (children_max is 16 on my laptop)
```
$ journalctl -b -u systemd-udevd.service | grep reached | wc -l
1544
```
With this commit (children_max is 30 on my laptop)
```
$ journalctl -b -u systemd-udevd.service | grep reached | wc -l
7
```
2018-11-07 00:25:20 +09:00
Yu Watanabe eca195ec23 udevd: wait 3 seconds before killing worker processes
During boot process, many worker processes are forked and killed.
To decrease cycles of forking and killing worker, let's wait
3 seconds before killing workers. If new uevent or inotify event
comes within the delay, the killing porcess will be cancelled.
2018-11-07 00:25:13 +09:00
Yu Watanabe da14313418 udevd: drop redundant logic of receiving uevent
If there exists pending uevents, then sd-event invokes uevent handler.
So, it is not necessary to receive the next uevent in inotify event.
2018-11-06 23:53:55 +09:00
Yu Watanabe b6107f010a udevd: decrease indentation 2018-11-06 23:53:50 +09:00
Lennart Poettering a0ca258adf
Merge pull request #10597 from toanju/fix-networkd-l3-loss
networkd: don't remove ip address or route
2018-11-06 17:44:24 +03:00
Yu Watanabe 05e6d9c64b udevd: merge conditions to decrease indentation 2018-11-06 23:21:25 +09:00
Lennart Poettering ed63705975
Merge pull request #10650 from yuwata/udevadm-trigger-use-write-string-file
udevadm: use write_string_file() helper function
2018-11-06 16:46:25 +03:00
Tobias Jungel db688b7e55 networkd: cleanup for #10542
fixes: 53b1f7d
2018-11-06 16:42:12 +03:00
Lennart Poettering ce9d553d2e
Merge pull request #10652 from yuwata/lldp-ndisc-string-table
lldp,ndisc: update debug logs
2018-11-06 16:41:48 +03:00
Giuseppe Scrivano 875622c39e core, sysctl: skip ENOENT for /proc/sys/net/unix/max_dgram_qlen
sysctl is disabled for /proc mounted from an user namespace thus entries like
/proc/sys/net/unix/max_dgram_qlen do not exist.  In this case, skip the error
and do not try to change the default for the AF_UNIX datagram queue length.
2018-11-06 16:41:34 +03:00
Lennart Poettering 0e28c86f54 ask-password: fix minor memory leak on error path
CID 1396557
2018-11-06 16:41:01 +03:00
Tobias Jungel 7ecf0c3e17 networkd: don't remove route
In case networkd is restarted this prevents a removal of an already existing
route that would be configured using networkd. With the proposed changes the
route will be kept on the interface without removing. This happens only on
physical hosts or VMs since networkd handles interface configuration slightly
different in containers.
2018-11-06 13:28:12 +01:00
Tobias Jungel 30226d2718 networkd: don't remove ip address
In case networkd is restarted this prevents a removal of an already existing IP
address that would be configured using networkd. With the proposed changes the
IP address will be kept on the interface without removing. This happens only on
physical hosts or VMs since networkd handles interface configuration slightly
different in containers.
2018-11-06 13:26:37 +01:00
Yu Watanabe 7cadbe09e9 sd-device: use write_string_file() helper to write sysattr 2018-11-06 21:24:03 +09:00
Yu Watanabe 835d18ba20 fileio: introduce WRITE_STRING_FILE_NOFOLLOW flag for write_string_file() and friends 2018-11-06 21:24:03 +09:00
Yu Watanabe 57512c893e tree-wide: set WRITE_STRING_FILE_DISABLE_BUFFER flag when we write files under /proc or /sys 2018-11-06 21:24:03 +09:00
Yu Watanabe 76cdddfb9d udevd: use set_oom_score_adjust() to set OOM score 2018-11-06 21:24:03 +09:00
Yu Watanabe 92c40e1dc8 udevadm: use write_string_file() helper function 2018-11-06 21:24:03 +09:00
Yu Watanabe 90208b8217 test: add tests for string tables for lldp and ndisc events 2018-11-06 20:15:09 +09:00
Yu Watanabe a2dcda328a ndisc: improve debug log message 2018-11-06 20:15:09 +09:00
Yu Watanabe 4f0e4d29b0 lldp: improve debug log message 2018-11-06 20:15:09 +09:00
Lennart Poettering 92025e8f52 random-util: initialize srand() from RDRAND
It's cheap to get RDRAND and given that srand() is anyway not really
useful for trusted randomness let's use RDRAND for it, after all we have
all the hard work for that already in place.
2018-11-06 12:12:18 +01:00
Lennart Poettering 54bf23151f random-util: we don't intend to write to auxv, hence make it const 2018-11-06 12:12:18 +01:00
Yu Watanabe 6bee206591 udev-node: add one more debug log when failed to create symlink 2018-11-06 15:45:22 +09:00
Yu Watanabe a126a38a9f udev-node: drop redundant log message
As node_symlink() logs almost same message.
2018-11-06 15:45:22 +09:00
Yu Watanabe 6174a243f9 udev: setting the same log level to SYSTEMD realm
Otherwise, many debug logs from libsystemd are dropped.
2018-11-06 15:45:22 +09:00
Yu Watanabe a5db6debcd test: check returned value of sd_device_get_usec_since_initialized() 2018-11-06 15:45:22 +09:00
Yu Watanabe 754d6c26b4 test: show is_initialized flag in log message of test-sd-device
And drop devpath, as it is redundant for most cases.
2018-11-06 15:45:22 +09:00
Yu Watanabe ecbe9873a9 test: show name of testing functions in test-sd-device 2018-11-06 15:45:22 +09:00
Yu Watanabe c7d54daef9 sd-device: normalize debug messages 2018-11-06 15:45:22 +09:00
Yu Watanabe 38d1555d7c sd-device: drop subsystem from log_device_*()
The sd_device object always has syspath and sysname, but subsytem may not.
Also, it may take some costs to get subsystem.
So, let's drop subsystem from logs.
2018-11-06 15:45:22 +09:00
Yu Watanabe cc0bf5e148 udev-watch: adjust level of log messages 2018-11-06 11:15:39 +09:00
Yu Watanabe 7fe3324c5e udev-watch: make udev_watch_lookup() return 1 when device found 2018-11-06 11:15:39 +09:00
Yu Watanabe b7759e0403 udev: drop redundant log message and fix returned error code 2018-11-06 11:15:39 +09:00
Lennart Poettering 8912a99cea
Merge pull request #10606 from yuwata/udev-tests
test: mask hwdb-update.services in most tests
2018-11-05 23:14:42 +03:00
Lennart Poettering a54e373163
Merge pull request #10618 from yuwata/fix-10615
network: fix several issues in config parser
2018-11-05 17:37:25 +03:00
Yu Watanabe 3d8d1f13d5 test: add tests for config_parse_address() 2018-11-05 16:46:26 +09:00
Yu Watanabe b7cb445235 network: use in_addr_default_prefix_from_string_auto() in config_parse_address() 2018-11-05 16:46:26 +09:00
Yu Watanabe c1d58204b2 test: add tests for in_addr_default_prefix_from_string() or friend 2018-11-05 16:46:26 +09:00
Yu Watanabe a4798d4e6d util: introduce in_addr_default_prefix_from_string() and friends
It is similar to in_addr_prefix_from_string() but it determines
the prefix length from address if it is not specified.
2018-11-05 16:46:26 +09:00
Yu Watanabe 67944f5c26 util: use strndup() instead of strndupa()
As the input string may be comes from command line or config files.
2018-11-05 16:46:00 +09:00
Yu Watanabe a7cc45caad network: sort headers in wireguard.h 2018-11-05 13:19:02 +09:00
Yu Watanabe fc72155321 network: use structured initializers in wireguard.c 2018-11-05 13:19:02 +09:00
Yu Watanabe c195364da5 network: fix crash in wireguard_done()
Fixes another issue in #10629.
2018-11-05 13:19:02 +09:00
Yu Watanabe 56ba90c2df network: use destroy callback to unref netdev attached to event source 2018-11-05 13:19:02 +09:00
Yu Watanabe 8173d1d0ec network: use destroy callback to clear resolved wireguard endpoints 2018-11-05 13:19:02 +09:00
Yu Watanabe c4397d94c3 network: link_drop() and netdev_drop() remove reference from manager 2018-11-05 13:19:02 +09:00
Yu Watanabe 2382c9367b sd-event: add sd_event_source_{get,set}_floating() 2018-11-05 13:19:02 +09:00
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
Yu Watanabe 383bb2bc1a vlan-util: add assertions to parse_vlanid() 2018-11-04 00:31:46 +09:00
Yu Watanabe 2e5da68b7d network: add missing .sections element for vcan and vrf
Fixes #10629.
2018-11-04 00:31:46 +09:00
Yu Watanabe de4224aa22 network: fix memleak abot Address.label
Also fix possible memleak about Address.section.
Fixes #10628.
2018-11-04 00:31:46 +09:00
Yu Watanabe 7946d57f18 network: drop error cause in log message
Fixes for 21486d9e99.
2018-11-04 00:31:46 +09:00
Yu Watanabe ecee0abe77 network: fix memleak in static prefix
The fix by 744faf5e4e is not perfect,
as the section leaks if `hashmap_put()` in `prefix_new_static()` fails.
2018-11-04 00:31:46 +09:00
Yu Watanabe 6f1a96ded4 netdev: also support GENEVE.UDP6ZeroChecksum{Tx,Rx}=
After 53c06862c1, we prefer Checksum
instead of CheckSum. Let's do so for GENEVE netdev.
2018-11-04 00:31:46 +09:00
Yu Watanabe fd3005f9b8 network: fix worng offset for .network parser 2018-11-04 00:31:46 +09:00
Yu Watanabe 899f0d259d network: fix memleak in config_parse_hwaddr()
Fixes #10615.
2018-11-04 00:31:46 +09:00
Yu Watanabe 44386b449b network: improve readability of config_parse_ifalias() 2018-11-04 00:31:46 +09:00
Yu Watanabe 25ed70f76f network: fix possible memleak caused by multiple setting of Bridge=, Bond= or VRF= 2018-11-04 00:31:46 +09:00
Yu Watanabe 5f74e49e85 test: add test for radv_prefix_delegation_{from,to}_string() 2018-11-04 00:31:46 +09:00
Yu Watanabe 6b1dec6696 network: introduce radv_prefix_delegation_{from,to}_string() 2018-11-04 00:31:46 +09:00
Yu Watanabe 8a4871c7d1 network: fix indentation 2018-11-04 00:31:46 +09:00
Yu Watanabe 8627d1120a network: invert the order in comparison 2018-11-04 00:31:46 +09:00
Yu Watanabe 1176b054e1 network: shorten code a bit 2018-11-04 00:31:06 +09:00
Yu Watanabe 76281c6408 test: also run compile tests for libudev.h 2018-11-03 18:00:47 +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 1ad6e8b302 core: split environment block mantained by PID 1's Manager object in two
This splits the "environment" field of Manager into two:
transient_environment and client_environment. The former is generated
from configuration file, kernel cmdline, environment generators. The
latter is the one the user can control with "systemctl set-environment"
and similar.

Both sets are merged transparently whenever needed. Separating the two
sets has the benefit that we can safely flush out the former while
keeping the latter during daemon reload cycles, so that env var settings
from env generators or configuration files do not accumulate, but
dynamic API changes are kept around.

Note that this change is not entirely transparent to users: if the user
first uses "set-environment" to override a transient variable, and then
uses "unset-environment" to unset it again things will revert to the
original transient variable now, while previously the variable was fully
removed. This change in behaviour should not matter too much though I
figure.

Fixes: #9972
2018-10-31 18:00:53 +01:00
Lennart Poettering bea1a01310 strv: wrap strv_new() in a macro so that NULL sentinel is implicit 2018-10-31 18:00:52 +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
Yu Watanabe 2740750d40 udev-event: move conditions to rename network interface into rename_netif()
Also, replace udev_device by sd_device.
2018-10-27 07:24:03 +09:00
Yu Watanabe c1118ceba4 udev-event: rename udev_event_unref() to udev_event_free()
As struct udev_event does not have a reference counter.
2018-10-27 07:03:39 +09:00
Yu Watanabe d737197154 udev-event: fix memleak in udev_event
The leak was introduced by 29448498c7.
2018-10-27 07:03:39 +09:00
Yu Watanabe 89665d0920 udev-event: use structured initializer at one more place 2018-10-27 07:03:39 +09:00
Yu Watanabe a368732bc4 udev-event: add more assert() 2018-10-27 07:03:39 +09:00