Commit graph

20705 commits

Author SHA1 Message Date
Yu Watanabe 3d924e7731
Merge pull request #8943 from keszybz/coverity-fixes
Coverity fixes
2018-05-10 23:22:38 +09:00
Filipe Brandenburger 4f29e0db12 conf-parser: accept trailing backslash at the end of the file (#8941)
This makes it behave the same whether there is a blank line or not at
the end of the file.  This is also consistent with the behavior of the
shell on a shell script that ends on a trailing backslash at the last
line.

Added tests to test_config_parse(), which only pass if the corresponding
change to config_parse() is included.
2018-05-09 18:10:07 -07:00
Zbigniew Jędrzejewski-Szmek f1470e424b core/mount-setup: remove part of check which is always true
k was set to join_controllers at this point and only incremented, so
it cannot be null at this point.

CID #1390949.
2018-05-10 02:03:23 +02:00
Zbigniew Jędrzejewski-Szmek 027cc9c92e basic/fs-util: remove logically dead code
We can jump to chase_one from two places. In the first 'todo' is set to
'buffer', which comes from path_make_absolute_cwd() and is nonnull In the
second 'todo' is set to 'joined' which is checked to be nonull a few lines
above the jump. So let's kill the code that deals with null todo there.

CID #1390941.
2018-05-10 01:57:37 +02:00
Zbigniew Jędrzejewski-Szmek 03d3a9d5be udevadm: fix null dererefence on allocation error
CID #1390936.
2018-05-10 01:49:01 +02:00
Zbigniew Jędrzejewski-Szmek 6a6e9c039f localed: fix memleak in error path
CID #1390929.
2018-05-10 01:45:20 +02:00
Zbigniew Jędrzejewski-Szmek 36591e1080 logind: fix borked r check
CID #1390947, #1390952.
2018-05-10 01:37:49 +02:00
Zbigniew Jędrzejewski-Szmek f20f4a775e basic/format-table: add missing va_end()
CID #1390930, #1390940.
2018-05-10 01:36:50 +02:00
Zbigniew Jędrzejewski-Szmek f201daec89 Introduce _cleanup_(strbuf_cleanupp) and use it to fix null deref on error
catalog_update() would call strbuf_cleanup(NULL) on allocation error.
CID #1390928.
2018-05-10 01:36:50 +02:00
Zbigniew Jędrzejewski-Szmek db983479af shared/sleep-config: fix memleak of strv, add test
CID #1390921, #1390951.
2018-05-10 01:36:50 +02:00
Zbigniew Jędrzejewski-Szmek f5ce2e764f
Merge pull request #8689 from davide125/static
meson: add support for building static libsystemd and libudev
2018-05-10 00:39:36 +02:00
Yu Watanabe 2c3def6214 timedate: use free_and_strdup() 2018-05-10 00:59:47 +09:00
Yu Watanabe 130d3d22e9 tree-wide: use strv_free_and_replace() macro 2018-05-10 00:57:34 +09:00
Yu Watanabe 947f9f01a1 time-util: fix indentation for comments 2018-05-09 22:50:07 +09:00
Zbigniew Jędrzejewski-Szmek 32e2e0ade9
Merge pull request #8923 from yuwata/resolvectl-drop-funcs
resolvectl: drop service_family_{from,to}_string()
2018-05-09 14:12:33 +02:00
Yu Watanabe 0f5bc6effd
Merge pull request #8938 from keszybz/sd-bus-automatic-cleanup
Use automatic cleanup more in sd-bus
2018-05-09 17:54:30 +09:00
David Tardon 33d8fe6057 use max. message size allowed by DBus spec (#8936)
C.f. https://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-messages.
2018-05-09 10:33:28 +02:00
Yu Watanabe fb507898a3 bus-util: print a friendly message when PID1 is not systemd
Follow-up for 861f16d267.

Fixes #8913.
2018-05-09 17:07:37 +09:00
Yu Watanabe f7e2933677 analyze: merge acquire_full_bus() and acquire_systemd_bus()
Follow-up for 5c69b31c13.
2018-05-09 17:07:37 +09:00
Zbigniew Jędrzejewski-Szmek 9df088f1ea sd-bus: add bus_freep and use _cleanup_ 2018-05-09 09:44:37 +02:00
Zbigniew Jędrzejewski-Szmek 01c4dcaffb sd-bus: use automatic cleanup more 2018-05-09 09:35:01 +02:00
Zbigniew Jędrzejewski-Szmek 0639f1354c sd-bus: trivial simplification 2018-05-09 09:30:58 +02:00
Yu Watanabe 0fbddd042c network,udev: sort included headers 2018-05-09 12:00:27 +09:00
Yu Watanabe e90d037411 network,udev: make MACAddress= in [Match] section take multiple MAC addresses 2018-05-09 11:59:18 +09:00
Yu Watanabe a7533e3e48 test: add tests for config_parse_hwaddrs() 2018-05-09 11:57:36 +09:00
Yu Watanabe 206b63eebb libsystemd-network: introduce config_parse_hwaddrs() 2018-05-09 11:57:36 +09:00
Yu Watanabe 583706abf9 ether-addr-util: add hash_ops functions for struct ether_addr 2018-05-09 11:57:36 +09:00
Yu Watanabe e5c1be89b5 ether-addr-util: make ether_addr_from_string() stricter 2018-05-09 11:57:36 +09:00
Zbigniew Jędrzejewski-Szmek 975464e0d4 meson: recompile all sources for install_libudev_static and install_libsystemd_static
This means that when those targets are built, all the sources are built again,
instead of reusing the work done to create libbasic.a and other convenience static
libraries. It would be nice to not do this, but there seems to be no support in
our toolchain for joining multiple static libraries into one. When linking
a static library, any -l arguments are simply ignored by ar/gcc-ar, and .a
libraries given as positional arguments are copied verbatim into the archive
so they objects in them cannot be accessed.

https://stackoverflow.com/questions/2157629/linking-static-libraries-to-other-static-libraries
suggests either unzipping all the archives and putting them back togather,
or using a linker script. Unzipping and zipping back together seems ugly.
The other option is not very nice. The linker script language does not
allow "+" to appear in the filenames, and filenames that meson generates
use that, so files would have to be renamed before a linker script was used.
And we would have to generate the linker script on the fly. Either way, this
doesn't seem attractive. Since those static libraries are a niche use case,
it seems reasonable to just go with the easiest and safest solution and
recompile all the source files. Thanks to ccache, this is probably almost as
cheap as actually reusing the convenience .a libraries.

test-libsystemd-sym.c and test-libudev-sym.c compile fine with the generated
static libs, so it seems that they indeed provide all the symbols they should.
2018-05-08 17:33:04 +02:00
Davide Cavalca 20f3d32d8d meson: only build test-lib{systemd,udev}-static-sym for pic 2018-05-08 17:33:04 +02:00
Davide Cavalca 70848ecfc6 meson: add support for building static libsystemd and libudev 2018-05-08 17:33:04 +02:00
Michael Biebl a72759c1d3
Merge pull request #8915 from yuwata/fix-8904
login: do not wall message on cancelling shutdown when Manager.enable_wall_messages is false
2018-05-08 15:03:27 +02:00
Susant Sahani 5f94520221 link: Add support to configure channels of the specified network device (#8882)
closes #8856
2018-05-08 13:03:41 +02:00
Zbigniew Jędrzejewski-Szmek 6b1ca2a948
Merge pull request #8898 from poettering/nspawn-mount-block
some nspawn cgroup and mount lock-down fixes
2018-05-08 12:54:58 +02:00
Yu Watanabe ebbc70e511 resolvectl: drop service_family_{from,to}_string()
These functions are used only for checking the validity of input string.
Hence, this drops them and introduces a simple checking function.
2018-05-08 17:52:36 +09:00
Susant Sahani af1c0de0e1 networkd: add support to send DHCP user class option (#7499)
This patch add support to enables to send User Class option code 77
RFC 3004.

This option MAY carry multiple User Classes.

The format of this option is as follows:

         Code   Len   Value
        +-----+-----+---------------------  . . .  --+
        | 77  |  N  | User Class Data ('Len' octets) |
        +-----+-----+---------------------  . . .  --+

   where Value consists of one or more instances of User Class Data.
   Each instance of User Class Data is formatted as follows:

         UC_Len_i     User_Class_Data_i
        +--------+------------------------  . . .  --+
        |  L_i   | Opaque-Data ('UC_Len_i' octets)   |
        +--------+------------------------  . . .  --+

UserClass=
A DHCPv4 client can use UserClass option to identify the type or category of user or applications
it represents. The information contained in this option is an string that represents the user class
of which the client is a member. Each class sets an identifying string of information to be used by the DHCP service to classify clients. Takes a whitespace-separated list.

UserClass= hello world how are you

Closes: RFC: #5134
2018-05-07 14:21:02 +02:00
Yu Watanabe 348b44372f meson: generate m4 preprocessor from config.h (#8914) 2018-05-07 11:17:35 +02:00
Yu Watanabe 6e78fa4afd login: do not wall message on cancelling shutdown when Manager.enable_wall_messages is false
Fixes #8904.
2018-05-07 10:17:58 +09:00
Yu Watanabe c9482b8822 login: change variable type of enable_wall_messages as it matches Manager.enable_wall_messages 2018-05-07 10:13:54 +09:00
Yu Watanabe 4b4ee0f781 meson: also try to search gnu-efi based on EFI_MACHINE_TYPE_NAME (#8900)
On Fedora rawhide, since gnu-efi-3.0.8-3.fc29, many file paths are
changed to use `EFI_MACHINE_TYPE_NAME` instead of `gnu_efi_arch`.

Fixes #8896.
2018-05-04 17:49:57 +02:00
Lennart Poettering 4e2c0a227e namespace: extend list of masked files by ProtectKernelTunables=
This adds a number of entries nspawn already applies to regular service
namespacing too. Most importantly let's mask /proc/kcore and
/proc/kallsyms too.
2018-05-03 17:46:31 +02:00
Lennart Poettering 720f0a2f3c nspawn: move nspawn cgroup hierarchy one level down unconditionally
We need to do this in all cases, including on cgroupsv1 in order to
ensure the host systemd and any systemd in the payload won't fight for
the cgroup attributes of the top-level cgroup of the payload.

This is because systemd for Delegate=yes units will only delegate the
right to create children as well as their attributes. However, nspawn
expects that the cgroup delegated covers both the right to create
children and the attributes of the cgroup itself. Hence, to clear this
up, let's unconditionally insert a intermediary cgroup, on cgroupsv1 as
well as cgroupsv2, unconditionally.

This is also nice as it reduces the differences in the various setups
and exposes very close behaviour everywhere.
2018-05-03 17:45:42 +02:00
Lennart Poettering 910384c821 nspawn: let's make use of SPECIAL_MACHINE_SLICE macro, after all we already set it 2018-05-03 17:45:42 +02:00
Lennart Poettering 9ec5a93c98 nspawn: don't make /proc/kmsg node too special
Similar to the previous commit, let's just use our regular calls for
managing temporary nodes take care of this.
2018-05-03 17:45:42 +02:00
Lennart Poettering cdde6ba6b6 nspawn: mount boot ID from temporary file in /tmp
Let's not make /run too special and let's make sure the source file is
not guessable: let's use our regular temporary file helper calls to
create the source node.
2018-05-03 17:45:42 +02:00
Lennart Poettering d4b653c589 nspawn: lock down a few things in /proc by default
This tightens security on /proc: a couple of files exposed there are now
made inaccessible. These files might potentially leak kernel internals
or expose non-virtualized concepts, hence lock them down by default.
Moreover, a couple of dirs in /proc that expose stuff also exposed in
/sys are now marked read-only, similar to how we handle /sys.

The list is taken from what docker/runc based container managers
generally apply, but slightly extended.
2018-05-03 17:45:42 +02:00
Lennart Poettering c69c7068ce
Merge pull request #8868 from yuwata/resolve-show-current-server
resolvectl: show current DNS server
2018-05-03 17:24:34 +02:00
Lennart Poettering d0821d8839
Merge pull request #8644 from yuwata/rfe-1589
timesync: expose NTP response on DBus
2018-05-03 17:23:40 +02:00
Susant Sahani 801d2c9f5d ethtool: get_glinksettings Fix copy (#8889)
It should be other way around.
2018-05-03 17:20:56 +02:00
Lennart Poettering 10af01a5ff nspawn: use free_and_replace() at more places 2018-05-03 17:19:46 +02:00