]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
3 years agooomd: fix iteration over candidates to kill 19149/head
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 12:45:22 +0000 (14:45 +0200)] 
oomd: fix iteration over candidates to kill

3 years agooomd: make it more clear when a kill happens
Anita Zhang [Fri, 26 Mar 2021 10:01:38 +0000 (03:01 -0700)] 
oomd: make it more clear when a kill happens

Improve the logging to only print if systemd-oomd killed something. And
also print which cgroup was targeted.
Demote general swap above/pressure above messages to debug.

[zjs: fix some issuelets found in review]

3 years agodocs: link to stable releases in the bug template
Zbigniew Jędrzejewski-Szmek [Thu, 25 Mar 2021 19:41:05 +0000 (20:41 +0100)] 
docs: link to stable releases in the bug template

Also, ask people to use a recent stable release and provide useful version information.
Inspired by #19118.

3 years agoMerge pull request #19112 from poettering/more-stub-fixes
Zbigniew Jędrzejewski-Szmek [Thu, 25 Mar 2021 20:31:27 +0000 (21:31 +0100)] 
Merge pull request #19112 from poettering/more-stub-fixes

resolved: two more tweaks to the stub

3 years agoMerge pull request #19117 from bluca/coverity
Luca Boccassi [Thu, 25 Mar 2021 19:33:58 +0000 (19:33 +0000)] 
Merge pull request #19117 from bluca/coverity

Two small coverity issues

3 years agoresolved: rework CNAME logic a bit more 19112/head
Lennart Poettering [Wed, 24 Mar 2021 22:29:16 +0000 (23:29 +0100)] 
resolved: rework CNAME logic a bit more

When following CNAME/DNAME redirects in the stub we currently first
iterate through the packet and pick up what we can use (in
dns_stub_collect_answer_by_question() and friends), following all
CNAMEs/DNAMEs, and would then issue dns_query_process_cname() to move
the DnsQuery object forward too, where we'd then possibly restart
the query and pick things up again, as above.

There's one thought error in this though: dns_query_process_cname()
tries to be smart and will internally follow not just a single
CNAME/DNAME redirect, but a chain of them if they are contained inside
the same packet until we reach the point where the answer is not
included in the packet anymore, where we'd restart the query. This was
great as long as we only focussed on the D-Bus and Varlink resolver
APIs, since there the CNAME/DNAME chain in the middle doesn't actually
matter, we just return information about the final name of the RR and
its content, and aren't interested in the chain to it. For the DNS stub
this is different however: there we need to place the full CNAME/DNAME
chain (and all the appropriate metadata RRs) in the stub reply.

Hence rework this so that we build on the fact that the previous commit
split dns_query_process_cname() in two:

1. dns_query_process_cname_one() will do exactly one CNAME/DNAME
   redirect step. This will be called by the stub, so that we can pick
   up matching RRs for every single step along the way.

2. dns_query_process_cname_many() will follow a chain as long as that's
   possible within the same packet. It's thus pretty much identical to
   the old dns_query_process_cname() call. This is what we now use in
   the D-Bus and Varlink APIs. dns_query_process_cname_many() is
   basically just a loop around dns_query_process_cname_one().

Any logic to follow and pick up RRs manually in the stub along the
CNAME/DNAME path is now dropped (i.e.
dns_stub_collect_answer_by_question() becomes trivially simple again),
we solely rely on dns_query_process_cname_one() to follow CNAME/DNAME
now: each step followed by a full call of dns_stub_assign_sections() to
copy out the RRs that matter.

Net result: things are a bit simpler again, as the only place we follow
CNAME/DNAME redirects is DnsQuery again, and stub answers are always
complete: they contain all CNAME/DNAME RRs on the way including all
their metadata we might pick up in the other sections.

3 years agoresolved: split dns_query_process_cname() into two separate functions
Lennart Poettering [Thu, 25 Mar 2021 10:43:52 +0000 (11:43 +0100)] 
resolved: split dns_query_process_cname() into two separate functions

This does some refactoring: the dns_query_process_cname() function
becomes two: dns_query_process_cname_one() and
dns_query_process_cname_many(). The former will process exactly one
CNAME chain element, the latter will follow a chain for as long as
possible within the current packet.

dns_query_process_cname_many() is mostly identical to the old
dns_query_process_cname(), and all existing code is moved over to using
that.

This is mostly preparation for the next commit, where we make direct use
of dns_query_process_cname_one().

This also renames the DNS_QUERY_RESTARTED return value to
DNS_QUERY_CNAME. That's because in the dns_query_process_cname_many()
case as before if we return this we restarted the query in case we
reached the end of the chain without a conclusive answer, as before. But
in dns_query_process_cname_one() we'll only go one step anyway, and
leave restarting if needed to the caller. Hence DNS_QUERY_RESTARTED is a
bit of a misnomer in that case.

This also gets rid of the weird tail recursion in
dns_query_process_cname() and replaces it with an explicit loop in
dns_query_process_cname_many(). The old recursion wasn't a security
issue since we put a limit on the number of CNAMEs we follow anyway, but
it's still icky to scale stack use by that.

3 years agotest-dhcp6-client: add one more assert on memory mapping 19117/head
Luca Boccassi [Thu, 25 Mar 2021 11:47:13 +0000 (11:47 +0000)] 
test-dhcp6-client: add one more assert on memory mapping

Static analyzers need a hint that optval is not pointing
off the end of the msg_advertise array, since pos can go
up to the full length of it. The array is manually
constructed so we know this won't happen, but adding one
more assert should be enough to avoid false positives.

Coverity CID #1394277

3 years agotest-firewall-util: add more asserts on allocated variables
Luca Boccassi [Thu, 25 Mar 2021 10:49:06 +0000 (10:49 +0000)] 
test-firewall-util: add more asserts on allocated variables

Makes things nicer for readers, and hopefully gives static analyzers
a hint on the origin/cleanup of the ctx pointer.
Coverity CID #1451399

3 years agoresolved: tweak sections we add answer RRs to
Lennart Poettering [Wed, 24 Mar 2021 21:02:55 +0000 (22:02 +0100)] 
resolved: tweak sections we add answer RRs to

Previously we'd stick all answer sections RRs we acquired into
the authoritative section if we didn't find them directly answering our
question. Let's put them into additional instead. The authoritative
section should hence only include what comes from the upstream
authoritative section, and nothing else.

3 years agoresolved: pass mDNS reply packets to each transaction exactly once
Lennart Poettering [Wed, 24 Mar 2021 17:36:41 +0000 (18:36 +0100)] 
resolved: pass mDNS reply packets to each transaction exactly once

Previously we'd iterate through the RRs of an mDNS reply and then find
exactly one matching transaction on our scope for it, and pass it as
reply to that. If multiple RRs of the same packet match we'd pas the
packet multiple times to the transaction even.

This all doesn't really work anymore since there can be multiple open
transactions for the same key (with different flags), and it's kinda
ugly anywy. Hence let's turn this around: let's iterate through the
transactions and check if any of the included RRs match it, and if so
pass the packet to that transaction exactly once.

This speeds up mDNS a bit, since previously we'd oftentimes fail to find
all suitable transactions for an mDNS reply (because there can be
multiple transactions for the same RR key with different flags, and we
checked exactly one flag combination). Which would then mean the
transaction would time out, and be retried – at which point the cache
would be populated and thus it would still succeed, but only after this
timeout. With this fix this is corrected: every transaction that matches
will get the reply, instantly as we get it.

3 years agoresolved: upgrade log level to LOG_NOTICE if we switch to fallback server (or back)
Lennart Poettering [Wed, 24 Mar 2021 20:21:08 +0000 (21:21 +0100)] 
resolved: upgrade log level to LOG_NOTICE if we switch to fallback server (or back)

This is inspired by a recent thread on fedora-devel: it's noteworthy
when we switch to the fallback servers, since it might (or might not)
indicate some configuration problem.

Fixes: #18788
3 years agopo: Translated using Weblate (Korean)
simmon [Thu, 25 Mar 2021 03:01:51 +0000 (04:01 +0100)] 
po: Translated using Weblate (Korean)

Currently translated at 100.0% (189 of 189 strings)

Co-authored-by: simmon <simmon@nplob.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/ko/
Translation: systemd/main

3 years agoresolved: don't suppress OPT if we have no OPT
Lennart Poettering [Wed, 24 Mar 2021 19:36:02 +0000 (20:36 +0100)] 
resolved: don't suppress OPT if we have no OPT

This is inspired by #18917. It suppresses a misleading log message about
suppressing OPT where we might not actually have OPT.

3 years agoMerge pull request #19076 from yuwata/firewall-util-modernizations
Luca Boccassi [Wed, 24 Mar 2021 23:19:59 +0000 (23:19 +0000)] 
Merge pull request #19076 from yuwata/firewall-util-modernizations

firewall-util: modernize code and improve test

3 years agolocal-addresses: fix use of uninitialized value
David Tardon [Wed, 24 Mar 2021 13:45:02 +0000 (14:45 +0100)] 
local-addresses: fix use of uninitialized value

This can happen if ifi fails to be read from the netlink message and the
error is ENODATA.

Fixes the following valgrind message when running netstat:

==164141== Conditional jump or move depends on uninitialised value(s)
==164141==    at 0x524AE60: address_compare (local-addresses.c:29)
==164141==    by 0x48BCC78: msort_with_tmp.part.0 (msort.c:105)
==164141==    by 0x48BC9E4: msort_with_tmp (msort.c:45)
==164141==    by 0x48BC9E4: msort_with_tmp.part.0 (msort.c:53)
==164141==    by 0x48BCF85: msort_with_tmp (msort.c:45)
==164141==    by 0x48BCF85: qsort_r (msort.c:297)
==164141==    by 0x52500FC: UnknownInlinedFun (sort-util.h:47)
==164141==    by 0x52500FC: local_gateways.constprop.0 (local-addresses.c:310)
==164141==    by 0x5251C05: _nss_myhostname_gethostbyaddr2_r (nss-myhostname.c:456)
==164141==    by 0x5252006: _nss_myhostname_gethostbyaddr_r (nss-myhostname.c:500)
==164141==    by 0x498E7FE: gethostbyaddr_r@@GLIBC_2.2.5 (getXXbyYY_r.c:274)
==164141==    by 0x498E560: gethostbyaddr (getXXbyYY.c:135)
==164141==    by 0x121353: INET_rresolve.constprop.0 (inet.c:212)
==164141==    by 0x1135B9: INET_sprint (inet.c:261)
==164141==    by 0x121BFC: addr_do_one.constprop.0.isra.0 (netstat.c:1156)

3 years agotest-firewall-util: use assert_se() at most places 19076/head
Yu Watanabe [Mon, 22 Mar 2021 13:44:25 +0000 (22:44 +0900)] 
test-firewall-util: use assert_se() at most places

Otherwise, we cannot notice any failures...

3 years agopo: Translated using Weblate (Dutch)
Pjotr Vertaalt [Wed, 24 Mar 2021 09:16:18 +0000 (10:16 +0100)] 
po: Translated using Weblate (Dutch)

Currently translated at 100.0% (189 of 189 strings)

Co-authored-by: Pjotr Vertaalt <pjotrvertaalt@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/nl/
Translation: systemd/main

3 years agoprocess-util: dont allocate max length to read /proc/PID/cmdline
Anita Zhang [Tue, 23 Mar 2021 07:49:28 +0000 (00:49 -0700)] 
process-util: dont allocate max length to read /proc/PID/cmdline

Alternative title: Replace get_process_cmdline()'s fopen()/fread() with
read_full_virtual_file().

When RLIMIT_STACK is set to infinity:infinity, _SC_ARG_MAX will
return 4611686018427387903 (depending on the system, but definitely
something larger than most systems have). It's impractical to allocate this
in one go when most cmdlines are much shorter than that.

Instead use read_full_virtual_file() which seems to increase the buffer
depending on the size of the contents.

3 years agopid1: do not use generated strings as format strings (#19098)
Lincoln Ramsay [Wed, 24 Mar 2021 07:37:25 +0000 (17:37 +1000)] 
pid1: do not use generated strings as format strings (#19098)

The generated string may include %, which will confuse both the
xprintf call, and the VA_FORMAT_ADVANCE macro.

Pass the generated string as an argument to a "%s" format string
instead.

3 years agonetwork: fix ipv6 tunnel encapsulation limit (#19087)
hide [Tue, 23 Mar 2021 16:05:25 +0000 (01:05 +0900)] 
network: fix ipv6 tunnel encapsulation limit (#19087)

The encapsulation limit of IPv6 tunnel can not be set to 4, which is the default value of the encapsulation limit.

3 years agorepart: remove spurious empty double newlines
Lennart Poettering [Sat, 20 Mar 2021 21:13:54 +0000 (22:13 +0100)] 
repart: remove spurious empty double newlines

3 years agoblockdev-util: actually specify an access mode on open()
Lennart Poettering [Tue, 23 Mar 2021 13:04:59 +0000 (14:04 +0100)] 
blockdev-util: actually specify an access mode on open()

Linux is pretty lenient here, but we should specify the access mode.

3 years agoupdate TODO
Lennart Poettering [Tue, 23 Mar 2021 13:42:58 +0000 (14:42 +0100)] 
update TODO

3 years agopo: Added translation using Weblate (Dutch)
Pjotr Vertaalt [Tue, 23 Mar 2021 09:20:59 +0000 (10:20 +0100)] 
po: Added translation using Weblate (Dutch)

Co-authored-by: Pjotr Vertaalt <pjotrvertaalt@gmail.com>
3 years agoman: document differences in clean exit status for Type=oneshot
David Tardon [Fri, 19 Mar 2021 09:05:47 +0000 (10:05 +0100)] 
man: document differences in clean exit status for Type=oneshot

See commit 1f0958f640b87175cd547c1e69084cfe54a22e9d .

3 years agoman: rate limited services can be restartet from timer or socket
Christian Hesse [Tue, 23 Mar 2021 06:57:03 +0000 (07:57 +0100)] 
man: rate limited services can be restartet from timer or socket

If rate limiting kicks in for Restart= logic it is still possible for a
timer or socket to restart the service.

3 years agosd-event: disable epoll_pwait2 for now
Zbigniew Jędrzejewski-Szmek [Fri, 12 Mar 2021 09:20:38 +0000 (10:20 +0100)] 
sd-event: disable epoll_pwait2 for now

This reverts the gist of commit 798445ab84cff51bde7fcf936f0fb19c37cf858c.

Unfortunately the new syscall causes test-event to hang. 32 bit architectures
seem affected: i686 and arm32 in fedora koji. 32 bit build of test-event hangs
reliably under valgrind:

$ PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig meson build-32 -Dc_args=-m32 -Dc_link_args=-m32 -Dcpp_args=-m32 -Dcpp_link_args=-m32 && ninja -C build-32 test-event && valgrind build/test-event

If I set epoll_pwait2_absent=true, so the new function is never called, then
the issue does not reproduce. It seems to be strictly tied to the syscall.

On amd64, the syscall is not used, at least with the kernel that Fedora
provides. The kernel patch 58169a52ebc9a733aeb5bea857bc5daa71a301bb says:

  For timespec, only support this new interface on 2038 aware platforms
  that define __kernel_timespec_t. So no CONFIG_COMPAT_32BIT_TIME.

And Fedora sets CONFIG_COMPAT_32BIT_TIME=y. I expect most other distros will too.

On amd64: epoll_wait_usec: epoll_pwait2: ret=-1 / errno=38
On i686 (same kernel): epoll_wait_usec: epoll_pwait2: ret=2 / errno=0

Is this some kind of emulation? Anyway, it seems that this is what is going wrong.

So let's disable the syscall until it becomes more widely available and the
kinks have been ironed out.

Fixes test-event issue in #19052.

3 years agoMerge pull request #19075 from keszybz/calendarspec-loop
Zbigniew Jędrzejewski-Szmek [Tue, 23 Mar 2021 08:06:16 +0000 (09:06 +0100)] 
Merge pull request #19075 from keszybz/calendarspec-loop

Fix infinite loop in calendarspec calculation when timezone has negative DST save value

3 years agofirewall-util: refuse IPv6 firewall rules when kernel does not support IPv6
Yu Watanabe [Tue, 23 Mar 2021 03:02:54 +0000 (12:02 +0900)] 
firewall-util: refuse IPv6 firewall rules when kernel does not support IPv6

3 years agofirewall-util: gracefully handle -EOVERFLOW returned from older kernel
Yu Watanabe [Mon, 22 Mar 2021 16:57:51 +0000 (01:57 +0900)] 
firewall-util: gracefully handle -EOVERFLOW returned from older kernel

3 years agofirewall-util: do not use goto for retrying
Yu Watanabe [Mon, 22 Mar 2021 16:52:07 +0000 (01:52 +0900)] 
firewall-util: do not use goto for retrying

3 years agofirewall-util: add missing return value check
Yu Watanabe [Mon, 22 Mar 2021 16:34:30 +0000 (01:34 +0900)] 
firewall-util: add missing return value check

3 years agofirewall-util: probe firewall backend in fw_ctx_new()
Yu Watanabe [Tue, 23 Mar 2021 05:38:18 +0000 (14:38 +0900)] 
firewall-util: probe firewall backend in fw_ctx_new()

FirewallContext is used by networkd and nspawn. Both allocates the
context when it is really necessary. Hence, it is not necessary to delay
probing backend.

Moreover, if iptables backend is not enabled on build, and nftables is
not supported by kernel, previously `fw_nftables_init()` is called
everytime when we try to configure masquerade or dnat. It causes
significant performance loss.

Fixes test-firewall-util issue in #19052.

3 years agonetwork: allocate FirewallContext lazily
Yu Watanabe [Tue, 23 Mar 2021 05:37:05 +0000 (14:37 +0900)] 
network: allocate FirewallContext lazily

3 years agofirewall-util: logs which backend will be used
Yu Watanabe [Mon, 22 Mar 2021 13:33:23 +0000 (22:33 +0900)] 
firewall-util: logs which backend will be used

This also modernizes code a bit.

3 years agoshared/calendarspec: when mktime() moves us backwards, jump forward 19075/head
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 11:51:47 +0000 (12:51 +0100)] 
shared/calendarspec: when mktime() moves us backwards, jump forward

When trying to calculate the next firing of 'Sun *-*-* 01:00:00', we'd fall
into an infinite loop, because mktime() moves us "backwards":

Before this patch:
tm_within_bounds: good=0 2021-03-29 01:00:00 → 2021-03-29 00:00:00
tm_within_bounds: good=0 2021-03-29 01:00:00 → 2021-03-29 00:00:00
tm_within_bounds: good=0 2021-03-29 01:00:00 → 2021-03-29 00:00:00
...

We rely on mktime() normalizing the time. The man page does not say that it'll
move the time forward, but our algorithm relies on this. So let's catch this
case explicitly.

With this patch:
$ TZ=Europe/Dublin faketime 2021-03-21 build/systemd-analyze calendar --iterations=5 'Sun *-*-* 01:00:00'
Normalized form: Sun *-*-* 01:00:00
    Next elapse: Sun 2021-03-21 01:00:00 GMT
       (in UTC): Sun 2021-03-21 01:00:00 UTC
       From now: 59min left
       Iter. #2: Sun 2021-04-04 01:00:00 IST
       (in UTC): Sun 2021-04-04 00:00:00 UTC
       From now: 1 weeks 6 days left           <---- note the 2 week jump here
       Iter. #3: Sun 2021-04-11 01:00:00 IST
       (in UTC): Sun 2021-04-11 00:00:00 UTC
       From now: 2 weeks 6 days left
       Iter. #4: Sun 2021-04-18 01:00:00 IST
       (in UTC): Sun 2021-04-18 00:00:00 UTC
       From now: 3 weeks 6 days left
       Iter. #5: Sun 2021-04-25 01:00:00 IST
       (in UTC): Sun 2021-04-25 00:00:00 UTC
       From now: 1 months 4 days left

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1941335.

3 years agoMerge pull request #19079 from poettering/resolved-ipv6-cache-fix
Luca Boccassi [Mon, 22 Mar 2021 23:20:11 +0000 (23:20 +0000)] 
Merge pull request #19079 from poettering/resolved-ipv6-cache-fix

fix CNAME/DNAME following in combined A/AAAA replies

3 years agoMerge pull request #19081 from keszybz/three-comment-updates
Luca Boccassi [Mon, 22 Mar 2021 22:36:01 +0000 (22:36 +0000)] 
Merge pull request #19081 from keszybz/three-comment-updates

Three comment updates

3 years agoman: say that .device units need udev 19081/head
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 20:45:04 +0000 (21:45 +0100)] 
man: say that .device units need udev

This was implied by the need to tag them with "systemd", but let's make this
obvious, since it's rather easy to trip over this as a user.

Inspired by https://bugzilla.redhat.com/show_bug.cgi?id=1941458.

3 years agoReword and reindent comment
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 20:35:40 +0000 (21:35 +0100)] 
Reword and reindent comment

Follow-up for 0e557eef37.

3 years agoPartially revert "correct incorrect command in NEWS (#19048)"
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 13:28:21 +0000 (14:28 +0100)] 
Partially revert "correct incorrect command in NEWS (#19048)"

This reverts commit 6d18c13e79a0b3374599a3416a644a7837d5a1e6.

The syntax like "0666" is very unclear. It only makes sense for some subset of
people who do C programming. Let's use the much more sensible modern python
syntax instead.

3 years agoMerge pull request #19058 from bugaevc/log-open-protect-errno
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 20:28:28 +0000 (21:28 +0100)] 
Merge pull request #19058 from bugaevc/log-open-protect-errno

Save errno over log_open() calls

3 years agoshell-completion: systemd-run: add missing options
Yu Watanabe [Fri, 19 Mar 2021 13:16:22 +0000 (22:16 +0900)] 
shell-completion: systemd-run: add missing options

Closes #19044.

3 years agoupdate TODO
Lennart Poettering [Mon, 22 Mar 2021 20:17:58 +0000 (21:17 +0100)] 
update TODO

3 years agotest-calendarspec: do not convert timezone "" to ":"
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 10:29:35 +0000 (11:29 +0100)] 
test-calendarspec: do not convert timezone "" to ":"

I *think* it doesn't actually make any difference, because ":" will be ignored.
437f48a471f51ac9dd2697ee3b848a71b4f101df added prefixing with ":", but didn't
take into account the fact that we also use "" with a different meaning than
NULL here. But let's restore the original behaviour of specifying the empty
string.

3 years agotest-calendarspec: print offending line in output
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 10:10:22 +0000 (11:10 +0100)] 
test-calendarspec: print offending line in output

The output is rather long at this makes it easier to jump to the right place.
Also use normal output routines and set_unset_env() to make things more
compact.

3 years agoshared/calendarspec: constify parameter and simplify assignments to variable
Zbigniew Jędrzejewski-Szmek [Mon, 22 Mar 2021 08:20:47 +0000 (09:20 +0100)] 
shared/calendarspec: constify parameter and simplify assignments to variable

The scope of start & stop is narrowed down, and they are assigned only once.
No functional change, but I think the code is easier to read this way.
Also add a comment to make the code easier to read.

3 years agoupdate TODO
Lennart Poettering [Mon, 22 Mar 2021 18:07:34 +0000 (19:07 +0100)] 
update TODO

3 years agoresolved: don't accept responses to query unless they completely answer our questions 19079/head
Lennart Poettering [Mon, 22 Mar 2021 17:27:46 +0000 (18:27 +0100)] 
resolved: don't accept responses to query unless they completely answer our questions

When we checking if the responses we collected for a DnsQuery are
sufficient to complete it we previously only check if one of the
collected response RRs matches at least one of the question RR keys.

This changes the logic to require that there must be at least one
response RR matched *each* of the question RR keys before considering
the answer complete.

Otherwise we might end up accepting an A reply as complete answer for an
A/AAAA query and vice versa, but we want to make sure we wait until we
get a reply on both types before returning this to the user in all
cases.

This has been broken for basically forever, but didn't surface until
b1eea703e01da1e280e179fb119449436a0c9b8e since until then we'd basically
ignore the auxiliary RRs included in CNAME/DNAME replies. Once that
commit was made we'd start using the auxiliary RRs included in
CNAME/DNAME replies but those typically included only A or only AAAA
which we then took for complete.

Fixe: #19049

3 years agoresolved: propagate correct error variable
Lennart Poettering [Mon, 22 Mar 2021 17:27:36 +0000 (18:27 +0100)] 
resolved: propagate correct error variable

3 years agohomework: use FORK_CLOSE_ALL_FDS in a few more places 19058/head
Sergey Bugaev [Sun, 21 Mar 2021 18:21:57 +0000 (21:21 +0300)] 
homework: use FORK_CLOSE_ALL_FDS in a few more places

And make sure to reopen the log appropriately.

3 years agotree-wide: reopen log after fork when needed
Sergey Bugaev [Sat, 20 Mar 2021 15:12:14 +0000 (18:12 +0300)] 
tree-wide: reopen log after fork when needed

This follows up on 0b1f3c768ce1bd1490a5e53f539976dcef8ca765, adding more places
where we should reopen the log after forking with FORK_CLOSE_ALL_FDS.

When immediately calling exec in the child, prefer to explicitly reopen the log
after exec fails. In other cases, just use FORK_REOPEN_LOG.

3 years agolog: protect errno in log_open()
Sergey Bugaev [Mon, 22 Mar 2021 15:31:12 +0000 (18:31 +0300)] 
log: protect errno in log_open()

Commit 0b1f3c768ce1bd1490a5e53f539976dcef8ca765 has introduced log_open()
calls after exec fails post-fork. However, the log_open() call itself could
change the value of errno, which, for me, manifested in:

$ coredumpctl gdb
...
Failed to invoke gdb: Success

Fix this by using PROTECT_ERRNO in log_open().

3 years agomeson: fix warning about comparison between different types
Yu Watanabe [Mon, 22 Mar 2021 11:52:00 +0000 (20:52 +0900)] 
meson: fix warning about comparison between different types

Follow-up for e39288193fcdf3a36dbc49b78e6c9bf86a764e31.

3 years agoshared/calendarspec: abort calculation after 1000 iterations
Zbigniew Jędrzejewski-Szmek [Sun, 21 Mar 2021 19:59:32 +0000 (20:59 +0100)] 
shared/calendarspec: abort calculation after 1000 iterations

We have a bug where we seem to enter an infinite loop when running in the
Europe/Dublin timezone. The timezone is "special" because it has negative SAVE
values. The handling of this should obviously be fixed, but let's use a
belt-and-suspenders approach, and gracefully fail if we fail to find an answer
within a specific number of attempts. The code in this function is rather
complex, and it's hard to rule out another bug in the future.

3 years agologs-show: add missing newline in warning message
Antonio Terceiro [Sun, 21 Mar 2021 14:37:51 +0000 (11:37 -0300)] 
logs-show: add missing newline in warning message

3 years agomeson: fix build error of test-dnssec-complex
Yu Watanabe [Sun, 21 Mar 2021 04:58:12 +0000 (13:58 +0900)] 
meson: fix build error of test-dnssec-complex

Fixes #19065.

3 years agosystemd-boot: LLVM/lld does not support PE/COFF relocations. Bail out with an error...
tpgxyz [Thu, 18 Mar 2021 11:24:27 +0000 (12:24 +0100)] 
systemd-boot: LLVM/lld does not support PE/COFF relocations. Bail out with an error message

3 years agoblockdev-util: fix access to possibly invalidated dirent struct
Lennart Poettering [Fri, 19 Mar 2021 10:14:52 +0000 (11:14 +0100)] 
blockdev-util: fix access to possibly invalidated dirent struct

Let's copy out the string we need from the dirent, there's no reason to
believe the dirent struct might live for longer than one loop iteration.

3 years agorepart: make sure to grow partition table after growing backing loopback file
Lennart Poettering [Fri, 19 Mar 2021 09:36:48 +0000 (10:36 +0100)] 
repart: make sure to grow partition table after growing backing loopback file

This fixes the --size= switch, i.e. where we grow a disk image: after
growing it we need to expand the partition table so that its idea of the
the medium size matches the new reality. Otherwise our disk size
calculations in the subsequent steps might still use the original
ungrown size.

(This used to work, I guess this was borked when libfdisk learnt the
concept of "minimized" partition tables)

3 years agocorrect incorrect command in NEWS (#19048)
Michael Gisbers [Fri, 19 Mar 2021 10:38:53 +0000 (11:38 +0100)] 
correct incorrect command in NEWS (#19048)

* for /dev/vsock a file permission of 0o666 was mentioned but 0666 is probably better understood, so let's use that
* correct non existing command 'ip dev'

3 years agoWrong index in error message
Sam Lunt [Thu, 18 Mar 2021 19:50:30 +0000 (14:50 -0500)] 
Wrong index in error message

3 years agoudev: do not try to assign invalid ifname
Yu Watanabe [Thu, 18 Mar 2021 21:26:53 +0000 (06:26 +0900)] 
udev: do not try to assign invalid ifname

Fixes #19038.

3 years agohomepage: fix year in footer to 2021
Lennart Poettering [Thu, 18 Mar 2021 20:55:00 +0000 (21:55 +0100)] 
homepage: fix year in footer to 2021

(And while we are at it, let's fix the "Sources" link in the footer to point to the right git repo subdir)

3 years agoMerge pull request #19030 from dtardon/rhel9-covscan
Luca Boccassi [Thu, 18 Mar 2021 16:28:46 +0000 (16:28 +0000)] 
Merge pull request #19030 from dtardon/rhel9-covscan

a bunch of small fixes and clenups based on initial RHEL-9 covscan run

3 years agoMerge pull request #19036 from mrc0mmand/cocci-fixes
Luca Boccassi [Thu, 18 Mar 2021 14:26:04 +0000 (14:26 +0000)] 
Merge pull request #19036 from mrc0mmand/cocci-fixes

tree-wide: coccinelle fixes

3 years agoresolved-dns-rr: drop unneeded braces 19030/head
David Tardon [Thu, 18 Mar 2021 11:54:48 +0000 (12:54 +0100)] 
resolved-dns-rr: drop unneeded braces

3 years agoresolved-dns-rr: use already existing variable
David Tardon [Thu, 18 Mar 2021 11:50:27 +0000 (12:50 +0100)] 
resolved-dns-rr: use already existing variable

3 years agoresolved-dns-rr: avoid unnecessary reassignment
David Tardon [Thu, 18 Mar 2021 12:14:32 +0000 (13:14 +0100)] 
resolved-dns-rr: avoid unnecessary reassignment

3 years agoresolved-dns-rr: don't leak s if base64_append fails
David Tardon [Thu, 18 Mar 2021 12:13:04 +0000 (13:13 +0100)] 
resolved-dns-rr: don't leak s if base64_append fails

3 years agococcinelle: filter out a couple of 'false-positive' transformations 19036/head
Frantisek Sumsal [Thu, 18 Mar 2021 10:59:53 +0000 (11:59 +0100)] 
coccinelle: filter out a couple of 'false-positive' transformations

  * flag-set.cocci: perform the transformation only if the second
    argument is a constant
  * sd-journal/lookup3.c: skip the cocci completely for this file, since
    it's not "ours"
  * strjoina.cocci: skip the transformation on the "test_strjoina" test,
    since it intentionally tests the "incorrect" expression we're trying to
    transform (the same thing was already done in strjoin.cocci)

3 years agotree-wide: coccinelle fixes
Frantisek Sumsal [Thu, 18 Mar 2021 10:59:31 +0000 (11:59 +0100)] 
tree-wide: coccinelle fixes

Another batch of fixes (mostly) generated by Coccinelle.

3 years agoshutdown: fix typo
Ulrich Ölmann [Thu, 18 Mar 2021 08:43:13 +0000 (09:43 +0100)] 
shutdown: fix typo

3 years agosystemctl-edit: don't leak the old value of contents
David Tardon [Wed, 17 Mar 2021 13:42:06 +0000 (14:42 +0100)] 
systemctl-edit: don't leak the old value of contents

3 years agojournal-upload: use _cleanup_ for curl_slist
David Tardon [Wed, 17 Mar 2021 12:25:47 +0000 (13:25 +0100)] 
journal-upload: use _cleanup_ for curl_slist

3 years agojournal-upload: make the curl_slist cleanup actually work
David Tardon [Wed, 17 Mar 2021 11:20:11 +0000 (12:20 +0100)] 
journal-upload: make the curl_slist cleanup actually work

If h is NULL, it is pointless to call curl_slist_free_all() on it...

3 years agojournal-upload: cleanup CURL* on error
David Tardon [Wed, 17 Mar 2021 09:22:15 +0000 (10:22 +0100)] 
journal-upload: cleanup CURL* on error

3 years agojournal-gatewayd: use automatic cleanup
David Tardon [Wed, 17 Mar 2021 09:05:47 +0000 (10:05 +0100)] 
journal-gatewayd: use automatic cleanup

3 years agoMerge pull request #19011 from anitazha/pgscanrate v248-rc4
Lennart Poettering [Wed, 17 Mar 2021 22:26:49 +0000 (23:26 +0100)] 
Merge pull request #19011 from anitazha/pgscanrate

oomd: update pressure based kills to use pgscan rate

3 years agoMerge pull request #19034 from poettering/read-virtual-file-fix
Lennart Poettering [Wed, 17 Mar 2021 21:45:16 +0000 (22:45 +0100)] 
Merge pull request #19034 from poettering/read-virtual-file-fix

read_virtual_file() tweaks

3 years agooomd: clean up error handling 19011/head
Anita Zhang [Wed, 17 Mar 2021 00:57:50 +0000 (17:57 -0700)] 
oomd: clean up error handling

- Log debug if we're going to ignore an error
- Add %m if we use log_*_errno()
- log_oom() when checking ENOMEM

3 years agoMerge pull request #19031 from poettering/hwdb-248
Lennart Poettering [Wed, 17 Mar 2021 20:03:02 +0000 (21:03 +0100)] 
Merge pull request #19031 from poettering/hwdb-248

prepare 248-rc4

3 years agoresolved: simplify min_ttl check
Luca Boccassi [Wed, 17 Mar 2021 14:34:36 +0000 (14:34 +0000)] 
resolved: simplify min_ttl check

rr is asserted upon a few lines above, no need to check for null.
Coverity-found issue, CID 1450844

  CID 1450844:  Null pointer dereferences  (REVERSE_INULL)
  Null-checking "rr" suggests that it may be null, but it has already
    been dereferenced on all paths leading to the check.

3 years agofileio: add missing overflow checks to read_full_virtual_file() 19034/head
Lennart Poettering [Wed, 17 Mar 2021 17:48:01 +0000 (18:48 +0100)] 
fileio: add missing overflow checks to read_full_virtual_file()

given the source is trusted this is probably not a biggie, but let's
better be safe than sorry.

3 years agofileio: don't use realloc() in read_full_virtual_file()
Lennart Poettering [Wed, 17 Mar 2021 17:46:56 +0000 (18:46 +0100)] 
fileio: don't use realloc() in read_full_virtual_file()

We aren't interested in the data previousl read, hence free() followed
by malloc() is typically better since it means libc doesn't have to
restore the contained data needlessly.

3 years agosystemctl: pecify read_full_file() size argument as NULL
Lennart Poettering [Wed, 17 Mar 2021 17:44:51 +0000 (18:44 +0100)] 
systemctl: pecify read_full_file() size argument as NULL

If it is specified as NULL read_full_file() assumes the caller wants a C
string, and it looks for embedded NUL bytes to ensure that works. Given
we don#t actually use the size argument here, let's drop it.

(in one case the size argument is used, but not for actually processing
the full returned data, but just as a shortcut to compare things with
the original string. Let's drop use of that there, too given the risk of
embedded NUL bytes in the data read.)

3 years agotree-wide: use read_full_virtual_file() where appropriate
Lennart Poettering [Wed, 17 Mar 2021 17:43:42 +0000 (18:43 +0100)] 
tree-wide: use read_full_virtual_file() where appropriate

Wherever we read virtual files we better should use
read_full_virtual_file(), to make sure we get a consistent response
given how weird the kernel's handling with partial read on such file
systems is.

3 years agooomctl: show last_pgscan
Anita Zhang [Tue, 16 Mar 2021 00:38:45 +0000 (17:38 -0700)] 
oomctl: show last_pgscan

3 years agooomd: sort by pgscan rate not pgscan
Anita Zhang [Tue, 16 Mar 2021 00:21:45 +0000 (17:21 -0700)] 
oomd: sort by pgscan rate not pgscan

For pressure based killing we want to target who has the highest
increase in pgscan from the previous interval (vs. the previous logic
which used raw pgscan). This will prevent biasing towards long running
cgroups as mentioned in #19007.

3 years agoupdate TODO
Lennart Poettering [Wed, 17 Mar 2021 17:13:51 +0000 (18:13 +0100)] 
update TODO

3 years agoupdate NEWS for rc4 19031/head
Lennart Poettering [Wed, 17 Mar 2021 15:07:49 +0000 (16:07 +0100)] 
update NEWS for rc4

3 years agotools: exclude Weblate bot from "ninja git-contrib"
Lennart Poettering [Wed, 17 Mar 2021 15:50:27 +0000 (16:50 +0100)] 
tools: exclude Weblate bot from "ninja git-contrib"

Bots are not people, no reason to say thanks to them and list them as
authors or contributors.

3 years agomailmap: merge Weblate bot commiter into one
Lennart Poettering [Wed, 17 Mar 2021 15:46:02 +0000 (16:46 +0100)] 
mailmap: merge Weblate bot commiter into one

3 years agomeson.build: bump version of libudev
Lennart Poettering [Wed, 17 Mar 2021 15:11:12 +0000 (16:11 +0100)] 
meson.build: bump version of libudev

It didn't receive new API calls, bit it was changed, hence bump the
version accordingly.

3 years agohwdb: ninja update-hwdb
Lennart Poettering [Wed, 17 Mar 2021 14:58:15 +0000 (15:58 +0100)] 
hwdb: ninja update-hwdb

3 years agohwdb: ninja update-hwdb-autosuspend
Lennart Poettering [Wed, 17 Mar 2021 14:52:16 +0000 (15:52 +0100)] 
hwdb: ninja update-hwdb-autosuspend

3 years agodoc/RELEASE.md: document hwdb update step
Luca Boccassi [Wed, 17 Mar 2021 15:26:13 +0000 (15:26 +0000)] 
doc/RELEASE.md: document hwdb update step

3 years agoman: Specify that only d-bus methods can be answered async
igo95862 [Tue, 16 Mar 2021 18:43:12 +0000 (21:43 +0300)] 
man: Specify that only d-bus methods can be answered async

Not properties.

3 years agohwdb: unifying receiver match keys for Logitech MX Ergo
Dan Sanders [Wed, 17 Mar 2021 02:09:05 +0000 (19:09 -0700)] 
hwdb: unifying receiver match keys for Logitech MX Ergo