Commit Graph

24404 Commits

Author SHA1 Message Date
Yu Watanabe
a696290474 networkctl: accept wildcards to specify links
Closes #10840.
2019-02-15 13:47:48 +09:00
Lennart Poettering
6d586a1371 sd-bus: if we receive an invalid dbus message, ignore and proceeed
dbus-daemon might have a slightly different idea of what a valid msg is
than us (for example regarding valid msg and field sizes). Let's hence
try to proceed if we can and thus drop messages rather than fail the
connection if we fail to validate a message.

Hopefully the differences in what is considered valid are not visible
for real-life usecases, but are specific to exploit attempts only.
2019-02-14 10:27:37 +01:00
Zbigniew Jędrzejewski-Szmek
dc9cced4ac Merge pull request #11704 from yuwata/fix-oss-fuzz-12980
udev-rule: make rule_add_key() return negative errno when too much tokens
2019-02-13 23:27:12 +01:00
Peter Hutterer
dc4b6f8d2c sd-hwdb: fix matching for characters with an ord > 127
Devices like the "Microsoft Microsoft® 2.4GHz Transceiver v9.0 Mouse" contain
characters higher than 127. That ® is correctly stored in the hwdb and passed
into the search field during query, but the comparison fails.

Our search string is a const char *, trie_string() returns a const char * but
the current character is cast to uint8_t. This causes anything over 127 to
fail the match. Fix this, we're dealing with characters everywhere here after
all.
2019-02-13 23:19:20 +01:00
Zbigniew Jędrzejewski-Szmek
0471921b3e Merge pull request #11487 from poettering/unprotect-errno
Make sure NSS modules can change errno if they want
2019-02-13 23:18:13 +01:00
Yu Watanabe
31cbd20253 udev: check whether systemd is running, and do not use cg_kill() if not
Fixes #11645.
2019-02-13 17:07:56 +01:00
Yu Watanabe
6e2efb6c73 udev-rule: make rule_add_key() return negative errno when too much tokens
As OPTIONS= rule introduce multiple tokens.

Fixes oss-fuzz#12980.
2019-02-13 04:14:21 +09:00
Susant Sahani
0e2fdb83bb networkd: honour LinkLocalAddressing
Closes #9890
2019-02-13 02:36:15 +09:00
Alberts Muktupāvels
52c6c9eaec core: when we uninstall a job, add unit to dbus queue
Commit e6d05912cb added unit to dbus
queue on job install. Do same on job uninstall to make sure we get
PropertiesChanged signal.
2019-02-12 16:55:45 +01:00
Stephan E
ac8956efa2 Update mount.c
typo in output
2019-02-13 00:41:57 +09:00
Zbigniew Jędrzejewski-Szmek
14648b762f test-json: do not pass ephemeral array as intializer to JSON_BUILD_STRV
Fixes #11600.

The code was effectively doing:
  json_build(..., ({ char **_x = ((char**) ((const char*[]) {"one", "two", "three", "four", NULL })); _x; }));
but there was no guarantee that the storage for the array that _x points to
survives pass the end of the block. Essentially, STRV_MAKE cannot be used
inline inside of a block like this.
2019-02-11 11:53:07 +01:00
YiFei Zhu
2f92b1e99a boot/efi: use a wildcard section copy for final EFI generation
The GNU gold linker uses the section name `.rela.dyn` instead of
`.rela` for containing the relocation information. If this section
is not copied systemd-boot can crash.

Efitools started using wildcard section copies in their commit
b98d381b, and these wildcard sections are the only difference between
systemd-boot's section copy list and theirs. This patch add the
wildcard section `.rel*` to our objcopy, as it should include all
other wildcards assuming a recent GNU objcopy. Redundant arguments
for sections that would be matched by this wildcard are removed.

This patch has been tested on EDK II UEFI v2.70 Firmware on QEMU, and
Lenovo 0.5120 UEFI 2.40 Firmware on bare metal.

Fixes: #11541
2019-02-09 17:51:23 +01:00
Zbigniew Jędrzejewski-Szmek
9ef55e8b48 Merge pull request #11647 from thom311/hashmap-avoid-compiler-warning
Hashmap avoid compiler warning
2019-02-08 18:25:23 +01:00
Jan Engelhardt
a6fe3b4894 rpm: use sh compatible redirects
&> is bash-specific. Switch to something that will work with dash
and pbosh.
2019-02-08 17:58:31 +01:00
Lennart Poettering
cdccd29f39 nss: unportect errno before writing to NSS' *errnop
Fixes: #11321
2019-02-08 10:34:47 +01:00
Lennart Poettering
840f606d88 util.h: add new UNPROTECT_ERRNO macro
THis is inspired by #11395, but much simpler.
2019-02-08 10:34:47 +01:00
NeilBrown
1cae151d8e automount: don't pass non-blocking pipe to kernel.
Creating a pipe with O_NONBLOCK causes both the read and the write end to
be marked as non-blocking.
The "write" end is passed to the kernel autofs module, and it does not
expect a non-blocking pipe.  If it gets -EAGAIN when trying to write
(which is unlikely, but not completely impossible), it will close the
write end of the pipe, which leads to unexpected errors.

So change the code to only set O_NONBLOCK on the "read" end of the
pipe.  This is the only end that systemd interacts with, so the only end
it should be configuring.
2019-02-08 10:33:26 +01:00
Lennart Poettering
eb7e351496 Merge pull request #11578 from keszybz/gcc-9-fixes
Packed struct alignment workarounds for gcc-9
2019-02-07 15:25:05 +01:00
Lennart Poettering
ad28cfebc1 Merge pull request #11655 from yuwata/fix-11652
sd-device: fix device_copy_properties()
2019-02-07 15:01:31 +01:00
Lennart Poettering
6f2914406a Merge pull request #11659 from yuwata/fix-11643
import: fix invalid error check and use after free
2019-02-07 14:54:07 +01:00
Lennart Poettering
a4a1d59f98 Merge pull request #11663 from yuwata/follow-up-10712
core: make PIDFile= accept empty assignment
2019-02-07 14:46:35 +01:00
Yu Watanabe
21042737f0 sd-daemon: make sd_booted() return negative errno on unexpected error 2019-02-07 14:44:44 +01:00
Yu Watanabe
64242fd307 core/dbus-service: empty assignment to PIDFile= resets the value
Follow-up for a9353a5c5b.
2019-02-06 17:58:52 +01:00
Yu Watanabe
c79d66fc7e core/dbus-service: write PIDFile= setting to transient unit file
Follow-up for a9353a5c5b.
2019-02-06 17:58:40 +01:00
Yu Watanabe
b8055c05e2 core/load-fragment: empty assignment to PIDFile= resets the value
Follow-up for a9353a5c5b.
2019-02-06 17:58:24 +01:00
Yu Watanabe
67577508d8 curl-util: fix use after free
This fixes a bug introduced by c3e658004a.
2019-02-06 16:19:02 +01:00
Yu Watanabe
9b5b4bed17 pull: fix invalid error check
This fixes a bug introduced by 0d94088e4e.
2019-02-06 16:18:01 +01:00
Yu Watanabe
9ffb90964f test: add a test case for issue #11652 2019-02-06 08:43:34 +01:00
Yu Watanabe
5ce41697bd sd-device: fix device_copy_properties()
This fixes a bug introduced by a3ce813697.

Fixes #11652.
2019-02-06 08:36:52 +01:00
Zbigniew Jędrzejewski-Szmek
23cfbcc35e test-sizeof: print the alignments too 2019-02-05 18:56:41 +01:00
Zbigniew Jędrzejewski-Szmek
3c7dddaccf efivars: remove direct access to unaligned structure members
Most of the accesses *were* aligned. The only one that definetely wasn't was to
drive_path->part_start and drive_path->part_size, because those both expect
8 byte alignment, and are at offsets 4 and 12 in the packed structure.

Because of the way that device_path structure is defined and used, we expect
that device_path.length is always two-byte aligned.

This adds asserts in various places to ensure the proper alignment, and uses
memcpy in other places where the alignment might be off.
2019-02-05 18:15:00 +01:00
Zbigniew Jędrzejewski-Szmek
f7cb1c7900 efivars: make sure that _packed_ structure members are actually aligned as expected
When looking for the terminating double-NUL, don't just read the memory
until the terminator is found, but use the information we got about the
buffer size.

The length parameter passed to utf16_to_utf8() would include the terminator, so
the converted string would end up with two terminators (the original one
converted to "utf8", still 0, and then the one that was always added anyway).
Instead let's pass just the length of the actual data to utf16_to_utf8().
2019-02-05 17:25:08 +01:00
Mantas Mikulėnas
6d6308f677 udevadm info: "-a" should enumerate sysfs attributes, not envs (#11642)
This fixes a bug introduced by 13aca84769.
2019-02-05 06:30:49 +02:00
Zbigniew Jędrzejewski-Szmek
c92ab239a0 test-resolve: increase timeout to 120s
The test queries some domain names. If the DNS servers are unreachable,
e.g. in a rawhide container I get the total runtime of 24.5s usually, but
sometimes slightly longer, enough to reach the default timeout of 30s.
2019-02-04 20:32:44 +01:00
Zbigniew Jędrzejewski-Szmek
62353f69cc journal: drop _packed_ attribute in a few places
The justification is the safe as for the grandparent commit.
2019-02-04 20:32:44 +01:00
Zbigniew Jędrzejewski-Szmek
6b68c26824 test-util: drop _packed_ attribute
gcc-9 warns:
../src/test/test-util.c:147:19: note: in expansion of macro ‘container_of’
  147 |         assert_se(container_of(&myval.v1, struct mytype, v1) == &myval);
      |                   ^~~~~~~~~~~~

I don't think packing matters here for the test of container_of(), so let's
just remove it.
2019-02-04 20:32:44 +01:00
Zbigniew Jędrzejewski-Szmek
e27b9aba30 libsystemd-network: remove _packed_ attribute to appease the compiler
gcc-9 warns whenever the elements of a structure defined with _packed_ are used:

../src/network/networkd-dhcp6.c: In function ‘dhcp6_pd_prefix_assign’:
../src/network/networkd-dhcp6.c:92:53: warning: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value [-Waddress-of-packed-member]
   92 |         r = manager_dhcp6_prefix_add(link->manager, &p->opt.in6_addr, link);
      |                                                     ^~~~~~~~~~~~~~~~

And the compiler is right, because in principle the alignment could be wrong.
In this particular case it is not, because the structure is carefully defined
not to have holes. Let's remove _packed_ and use compile-time asserts to verify
that the offsets are not changed.
2019-02-04 20:32:44 +01:00
Yu Watanabe
95832a0f8c analyze security: fix recursive call of syscall_names_in_filter()
When `syscall_names_in_filter()` is called in itself, it is already
examined with `whitelist`. Or, in other words, `syscall_names_in_filter()`
returns bad or good in boolean. So, the returned value should not be
compared with `whitelist` again.

This replaces #11302.
2019-02-04 16:01:38 +01:00
Yu Watanabe
19df01f529 machinectl: fix argument index in error log
Fixes #11628.
2019-02-04 11:03:58 +01:00
Thomas Haller
51c682df38 hashmap: always set key output argument of internal_hashmap_first_key_and_value()
internal_hashmap_first_key_and_value() returns the first value, or %NULL
if the hashmap is empty.

However, hashmaps may contain %NULL values. That means, a caller getting
%NULL doesn't know whether the hashmap is empty or whether the first
value is %NULL.

For example, a caller may be tempted to do something like:

    if ((val = hashmap_steal_first_key_and_value (h, (void **) key))) {
         // process first entry.
    }

But this is only correct if the caller made sure that the hash is either
not empty or contains no NULL values.

Anyway, since a %NULL return value can signal an empty hash or a %NULL
value, it seems error prone to leave the key output argument
uninitialized in situations that the caller cannot clearly distinguish
(without making additional assumptions).
2019-02-04 09:47:00 +01:00
Thomas Haller
ca3237150e hashmap: avoid uninitialized variable warning in internal_hashmap_clear()
GCC 8.2 with LTO and -O2 emits a false warning:

    src/basic/hashmap.c: In function 'internal_hashmap_free.constprop':
    src/basic/hashmap.c:898:33: error: 'k' may be used uninitialized in this function [-Werror=maybe-uninitialized]
                      free_key(k);
                      ^

Avoid it by initializing the variable.
2019-02-04 09:36:08 +01:00
Fabrice Fontaine
aeed8332af networkd-dhcp6.c: fix build without IFA_F_NOPREFIXROUTE
systemd fails to build on kernel without IFA_F_NOPREFIXROUTE
since 9714c02

So put include missing_network.h

Fixes:
 - http://autobuild.buildroot.org/results/970b09e1d49b53dff12a07ca4ad424ef9dd29a69

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-02-03 18:38:47 +01:00
Fabrice Fontaine
081aea2502 networkd-address.c: fix build without IFA_F_NOPREFIXROUTE
systemd fails to build on kernel without IFA_F_NOPREFIXROUTE
since 9714c02

So put include missing_network.h

Fixes:
 - http://autobuild.buildroot.org/results/970b09e1d49b53dff12a07ca4ad424ef9dd29a69

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-02-03 18:34:36 +01:00
Fabrice Fontaine
d909e4af6a networkd-ndisc.c: fix build without IFA_F_NOPREFIXROUTE
systemd fails to build on kernel without IFA_F_NOPREFIXROUTE
since 9714c02

So put include missing_network.h

Fixes:
 - http://autobuild.buildroot.org/results/970b09e1d49b53dff12a07ca4ad424ef9dd29a69

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-02-03 18:30:38 +01:00
Fabrice Fontaine
7bd188b1e6 networkd-brvlan.c: fix build without BRIDGE_VLAN_INFO_RANGE_END
systemd fails to build on kernel without BRIDGE_VLAN_INFO_RANGE_END
since 9714c02

So put include missing_if_bridge.h

Fixes:
 - http://autobuild.buildroot.org/results/970b09e1d49b53dff12a07ca4ad424ef9dd29a69

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-02-03 17:34:53 +01:00
YmrDtnJu
f2ea9cc746 shared: Revert commit 49fe5c099 in parts for function parse_acl.
Too much code has been removed while replacing startswith with STARTSWITH_SET
so that every ACL specified e.g. in tmpfiles.d was parsed as a default ACL.
2019-02-02 12:46:32 +01:00
Yu Watanabe
3285320786 test-execute: unset $HOME before testing
Otherwise, test for %h specifier may fail.

Fixes #11609.
2019-02-01 18:43:14 +01:00
Lennart Poettering
118dccc948 pager: improve english a bit 2019-01-31 13:37:58 +01:00
Lennart Poettering
92dc48ac45 Merge pull request #11540 from taro-yamada/mytest
ReFix #11128
2019-01-29 11:27:42 +01:00
Lennart Poettering
f90bf549f7 Merge pull request #11569 from yuwata/first-step-11307
util-lib: warn if address is specified without prefix length
2019-01-29 11:25:55 +01:00