Commit graph

28887 commits

Author SHA1 Message Date
Susant Sahani 35f6a5cb44 network: DHCPv6 - Add support set arbitary request options 2020-05-17 11:18:29 +02:00
Susant Sahani 2b20ca653c sd-dhcp6: Allow to add arbitary request option 2020-05-17 10:54:43 +02:00
Susant Sahani 22ae6c7d9a networkctl: VXLan - display more properties 2020-05-17 09:54:25 +02:00
Topi Miettinen b4e1563ffb Increase size of /run to 20%
For low memory machines (256MB), 10% of RAM for /run may not be enough for
re-exec of PID1 because 16MB of free space is required and /run may already
contain something.
2020-05-15 21:40:22 +02:00
Lennart Poettering 18fbb567a8
Merge pull request #15817 from poettering/more-conditions
Add ConditionEnvironment= and ConditionIsEncrypted=
2020-05-15 20:25:34 +02:00
Lennart Poettering cb1277fa3b udev: get rid of "Could not set flow control of" message on "lo" interface
When setting flow control attributes of an interface we first acquire
the current settings and then add in the new settings before applying
them again. This only works on interfaces that implement the ethtool
ioctls. on others we'll see an ugly "Could not set flow control of"
message, simply because we issue the SIOCETHTOOL ioctl once, for getting
the data. In particular we'll get it for the "lo" interface all the
time, which sucks hard. Let's get rid of it.
2020-05-15 17:58:53 +02:00
Frantisek Sumsal c07f18ffd4 shared: fix integer overflow in calendarspec
Fixes: oss-fuzz#22208

```
test/fuzz/fuzz-calendarspec/oss-fuzz-22208... ../src/shared/calendarspec.c:666:48: runtime error: signed integer overflow: 2147000000 + 1000000 cannot be represented in type 'int'
    #0 0x7f0b9f6cc56a in prepend_component ../src/shared/calendarspec.c:666
    #1 0x7f0b9f6cd03a in parse_chain ../src/shared/calendarspec.c:718
    #2 0x7f0b9f6cea1c in parse_calendar_time ../src/shared/calendarspec.c:845
    #3 0x7f0b9f6d1397 in calendar_spec_from_string ../src/shared/calendarspec.c:1084
    #4 0x401570 in LLVMFuzzerTestOneInput ../src/fuzz/fuzz-calendarspec.c:17
    #5 0x401ae0 in main ../src/fuzz/fuzz-main.c:39
    #6 0x7f0b9e31b1a2 in __libc_start_main (/lib64/libc.so.6+0x271a2)
    #7 0x40122d in _start (/home/fsumsal/repos/systemd/build/fuzz-calendarspec+0x40122d)

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/shared/calendarspec.c:666:48 in
```
2020-05-15 16:07:29 +02:00
Lennart Poettering a0b191b705 condition: add ConditionEnvironment=
Prompted by the discussions in #15180.

This is a bit more complex than I hoped, since for PID 1 we need to pass
in the synethetic environment block in we generate on demand.
2020-05-15 16:05:33 +02:00
Lennart Poettering 7cd9e4f8a0 limit-util: quieten a very common debug message that is misleading 2020-05-15 15:50:09 +02:00
Lennart Poettering 411e835c50 condition: return (Condition*) NULL from condition_free()
Follow our usual coding style.
2020-05-15 15:50:09 +02:00
Lennart Poettering dce719f6c1 condition: introduce generic function type for condition_to_string()-like functions
Let's add a typedef for a function type we use at multiple places.
2020-05-15 15:50:09 +02:00
Lennart Poettering 7f19247b5e condition: add ConditionPathIsEncrypted=
It's easy to add, and should be pretty useful, in particular as in
AssertPathIsEncrypted= as it can be used for checking that
some path is encrypted before some service is invoked that might want to
place secure material there.
2020-05-15 15:50:09 +02:00
Susant Sahani 89fe653544 network: Add support to group links.
Link groups are similar to port ranges found in managed switches.
You can add network interfaces to a numbered group and perform operations
on all the interfaces from that group at once.
2020-05-15 15:27:07 +02:00
Zbigniew Jędrzejewski-Szmek bf896ca628
Merge pull request #15792 from poettering/repart-allocate
repart: add --size= and --empty=create options for growing/creating disk images from scratch
2020-05-15 11:40:24 +02:00
Lennart Poettering e1e214c56b
Merge pull request #15265 from fbuihuu/mount-fixes
Mount fixes
2020-05-15 11:13:45 +02:00
Zbigniew Jędrzejewski-Szmek 214ffe64fc
Merge pull request #15052 from jaankit/journal-send
journal-send: Fix the limitation of LINE_MAX
2020-05-15 10:42:25 +02:00
Lennart Poettering f3dc6af20f core: automatically update StandardOuput=syslog to =journal (and similar for StandardError=)
Let's go one step further and upgrade implicitly. Usually =syslog
assignments are historic artifacts only. Let's upgrade the lines
automatically, and politely suggest people update their unit
files/configuration (and drop the lines altogether, without
replacement).

Fixes: #15807
2020-05-15 00:05:46 +02:00
Lennart Poettering 05ae606b79 test: update tests to use new repart features 2020-05-14 23:59:23 +02:00
Lennart Poettering a26f4a49f4 repart: add support for create/growing loopback files
This adds --empty=create and --size= for creating loopback files from
scratch of a specified size, or growing loopback files to the specified
size when they already exist.

This is useful when operating on disk image files, as a manual
invocation of fallocate(1) becomes unnecessary.
2020-05-14 23:59:23 +02:00
Lennart Poettering 9a1deb8578 repart: suppress complaints about lack of BLKRRPART when operating on regular file 2020-05-14 23:01:09 +02:00
Lennart Poettering e2d65cd299 repart: explain when we exit early and don't do a thing 2020-05-14 23:00:52 +02:00
Andreas Rammhold 32fcf399bf sd-netlink: remove unused RTNL_WQUEUE_MAX define
While investigating why some of my netlink calls would timeout I
stumbled upon the definition of the max write queue length. Finding this
constant made me believe we still had a write queue in the code - which
isn't true. The netlink write queue code was removed in #189.
2020-05-14 22:27:03 +02:00
Lennart Poettering c53ce14dfc sysctl: check correct error code 2020-05-14 20:49:21 +02:00
Ankit Jain 2eaf435a16 journal-send: Fix the limitation of LINE_MAX
- If length of formatted string >= LONG_LINE_MAX then return -ENOBUFS
- Normal Case:
  - length of formatted string < POSIX defined LINE_MAX
  - Allocate sbuf to accomodate the message
- Rare case:
  - LINE_MAX < length of formatted string < LONG_LINE_MAX
  - Allocate the required length using alloca()
2020-05-14 17:15:34 +00:00
Zbigniew Jędrzejewski-Szmek 969d329490 test-journal-send: send printing of long lines 2020-05-14 17:15:14 +00:00
Rubens Figueiredo 4df4df5b56 network: allow setting VLAN protocol on bridges
Signed-off-by: Rubens Figueiredo <rubens.figueiredo@bisdn.de>
2020-05-14 17:59:57 +02:00
Susant Sahani cf217a0922 networkctl: Add support to display macvlan/macvtap mode 2020-05-14 17:35:56 +02:00
Susant Sahani d51674806a network: Introduce macvlan util 2020-05-14 17:35:56 +02:00
Lennart Poettering 90810f7a37 sd-dhcp-server: some function prototype fix-ups
Let's use size_t for numbers of entries in memory.

Let's use const wherever appropriate.

Drop `_server` suffix from function name where we don't have it for
similar other cases.
2020-05-14 17:11:44 +02:00
Lennart Poettering 2b8c2fbb2d
Merge pull request #15765 from benjarobin/fix_kw
Various bug fixes
2020-05-14 09:08:47 +02:00
Lennart Poettering 3250501865
Merge pull request #15660 from benjarobin/perf_barrier_fd
Faster manager_process_barrier_fd and drop message if BARRIER=1 found
2020-05-14 09:07:41 +02:00
Lennart Poettering de07add2c9
Merge pull request #15801 from poettering/journal-pid-change-fix
journald: stream pid change newline fix
2020-05-14 09:04:23 +02:00
Christian Göttsche 9bf4984a2a selinux: add parenthesis to function names in log messages 2020-05-14 09:03:51 +02:00
Benjamin Robin 243945e95e test: Add return 0 to main() function (even it is not strictly necessary) 2020-05-13 22:56:42 +02:00
Benjamin Robin fbb0b66577 systemctl: Check clean_or_freeze_unit(): Add assert if unknown method 2020-05-13 22:56:42 +02:00
Benjamin Robin 81c5a5961f network: 'cur' variable cannot be null, so simplify code 2020-05-13 22:56:42 +02:00
Benjamin Robin b9c54c4665 tree-wide: Initialize _cleanup_ variables if needed 2020-05-13 22:56:42 +02:00
Benjamin Robin 179b4db439 netlink: Fix assert condition on n_containers 2020-05-13 22:56:42 +02:00
Benjamin Robin 5151b4ccd2 core: Parse the tags list sooner, and use it for multiple function
- Parse the tags list using strv_split_newlines() which remove any
   unnecessary empty string at the end of the strv.
 - Use this parsed list for manager_process_barrier_fd() and every call
   to manager_invoke_notify_message().
 - This also allow to simplify the manager_process_barrier_fd() function.
2020-05-13 22:44:12 +02:00
Lennart Poettering 45ba1ea5e9 journald: rework pid change handling
Let's introduce an explicit line ending marker for line endings due to
pid change.

Let's also make sure we don't get confused with buffer management.

Fixes: #15654
2020-05-13 21:32:38 +02:00
Lennart Poettering 020b4a023c journald: use the fact that client_context_release() returns NULL 2020-05-13 21:32:34 +02:00
Lennart Poettering 549b7379ba journald: rework end of line marker handling to use a field table 2020-05-13 21:32:30 +02:00
Lennart Poettering 5fe7fb0bf6 journald: use log_warning_errno() where appropriate 2020-05-13 21:32:25 +02:00
Benjamin Robin 034e9719ac journald: Increase stdout buffer size sooner, when almost full
If the previous received buffer length is almost equal to the allocated
buffer size, before this change the next read can only receive a couple
of bytes (in the worst case only 1 byte), which is not efficient.
2020-05-13 21:31:58 +02:00
Lennart Poettering 266dd55505 systemctl: fix indentation of 'Active:' field in status output
Somehow two spaces got lost in d9e45bc3ab here, which made the status
output all unaligned. Let's put them back in.
2020-05-13 08:32:40 +02:00
Topi Miettinen 7d85383edb tree-wide: add size limits for tmpfs mounts
Limit size of various tmpfs mounts to 10% of RAM, except volatile root and /var
to 25%. Another exception is made for /dev (also /devs for PrivateDevices) and
/sys/fs/cgroup since no (or very few) regular files are expected to be used.

In addition, since directories, symbolic links, device specials and xattrs are
not counted towards the size= limit, number of inodes is also limited
correspondingly: 4MB size translates to 1k of inodes (assuming 4k each), 10% of
RAM (using 16GB of RAM as baseline) translates to 400k and 25% to 1M inodes.

Because nr_inodes option can't use ratios like size option, there's an
unfortunate side effect that with small memory systems the limit may be on the
too large side. Also, on an extremely small device with only 256MB of RAM, 10%
of RAM for /run may not be enough for re-exec of PID1 because 16MB of free
space is required.
2020-05-13 00:37:18 +02:00
Lennart Poettering 08d50deaf8 core: don't bind varlink socket if running in test mode
Fixes: #15748
2020-05-12 22:10:49 +02:00
Lennart Poettering 0289b4ec69
Merge pull request #15785 from poettering/pam-sudo-fixes-part1
some simple PAM fixes split out of #15742
2020-05-12 15:54:42 +02:00
Lennart Poettering 45c5fa253a pam_systemd: also print debug lines when ending a session 2020-05-12 11:10:30 +02:00
Lennart Poettering 3400bc866d pam_systemd: drop unused uid argument from export_legacy_dbus_address() 2020-05-12 11:10:27 +02:00