]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
8 years agoMerge pull request #2111 from evverx/remove-unnecessary-checking
Filipe Brandenburger [Mon, 7 Dec 2015 21:53:02 +0000 (13:53 -0800)] 
Merge pull request #2111 from evverx/remove-unnecessary-checking

build-sys: remove unnecessary check

8 years agoMerge pull request #2109 from keszybz/udev-null-deref
Martin Pitt [Mon, 7 Dec 2015 16:35:32 +0000 (17:35 +0100)] 
Merge pull request #2109 from keszybz/udev-null-deref

Udev null deref

8 years agobuild-sys: remove unnecessary check 2111/head
Evgeny Vereshchagin [Mon, 7 Dec 2015 07:02:37 +0000 (07:02 +0000)] 
build-sys: remove unnecessary check

added: 65adc982d
obsoleted: 2c8849add

8 years agoudev: fix NULL deref when executing rules 2109/head
Zbigniew Jędrzejewski-Szmek [Mon, 7 Dec 2015 05:10:15 +0000 (00:10 -0500)] 
udev: fix NULL deref when executing rules

We quite obviously check whether event->dev_db is nonnull, and
right after that call a function which asserts the same. Move
the call under the same if.

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

8 years agolibudev: simplify udev_device_ensure_usec_initialized a bit
Zbigniew Jędrzejewski-Szmek [Mon, 7 Dec 2015 05:09:12 +0000 (00:09 -0500)] 
libudev: simplify udev_device_ensure_usec_initialized a bit

8 years agoMerge pull request #2095 from evverx/fix-distcheck-for-disable-timesync
Lennart Poettering [Sun, 6 Dec 2015 19:58:11 +0000 (20:58 +0100)] 
Merge pull request #2095 from evverx/fix-distcheck-for-disable-timesync

build-sys: move "dist" parts out of conditional

8 years agoMerge pull request #2100 from msekletar/nologin-label
Lennart Poettering [Sun, 6 Dec 2015 19:57:33 +0000 (20:57 +0100)] 
Merge pull request #2100 from msekletar/nologin-label

user-sessions: make sure /run/nologin has correct SELinux label

8 years agoMerge pull request #2107 from phomes/misc
Lennart Poettering [Sun, 6 Dec 2015 19:49:12 +0000 (20:49 +0100)] 
Merge pull request #2107 from phomes/misc

Misc cleanups

8 years agoMerge pull request #2097 from kinvolk/alban/TasksMax
Lennart Poettering [Sun, 6 Dec 2015 19:48:02 +0000 (20:48 +0100)] 
Merge pull request #2097 from kinvolk/alban/TasksMax

nspawn: set TasksMax in machined instead of nspawn

8 years agoresolve: remove unused variable 2107/head
Thomas Hindoe Paaboel Andersen [Sun, 6 Dec 2015 11:31:18 +0000 (12:31 +0100)] 
resolve: remove unused variable

8 years agoshared: include what we use
Thomas Hindoe Paaboel Andersen [Thu, 3 Dec 2015 20:13:37 +0000 (21:13 +0100)] 
shared: include what we use

The next step of a general cleanup of our includes. This one mostly
adds missing includes but there are a few removals as well.

8 years agonspawn: set TasksMax in machined instead of nspawn 2097/head
Alban Crequy [Tue, 24 Nov 2015 17:14:01 +0000 (18:14 +0100)] 
nspawn: set TasksMax in machined instead of nspawn

https://github.com/systemd/systemd/issues/2016

8 years agologin: make sure /run/nologin has correct SELinux label 2100/head
Michal Sekletar [Fri, 4 Dec 2015 21:29:38 +0000 (22:29 +0100)] 
login: make sure /run/nologin has correct SELinux label

8 years agouser-sessions: make sure /run/nologin has correct SELinux label
Michal Sekletar [Fri, 4 Dec 2015 20:33:42 +0000 (21:33 +0100)] 
user-sessions: make sure /run/nologin has correct SELinux label

8 years agoMerge pull request #2092 from poettering/dnssec2
Tom Gundersen [Fri, 4 Dec 2015 13:22:29 +0000 (14:22 +0100)] 
Merge pull request #2092 from poettering/dnssec2

Second DNSSEC patch set

8 years agobuild-sys: move "dist" parts out of conditional 2095/head
Evgeny Vereshchagin [Fri, 4 Dec 2015 05:48:09 +0000 (05:48 +0000)] 
build-sys: move "dist" parts out of conditional

Fixes:
$ ./autogen.sh
$ ./configure ... --disable-timesyncd
$ make distcheck
...
make[1]: *** No rule to make target 'src/timesync/timesyncd-gperf.gperf', needed by 'src/timesync/timesyncd-gperf.c'.  Stop.

8 years agoMerge pull request #2093 from evverx/add-test-dnssec-to-gitignore
Zbigniew Jędrzejewski-Szmek [Fri, 4 Dec 2015 02:41:53 +0000 (21:41 -0500)] 
Merge pull request #2093 from evverx/add-test-dnssec-to-gitignore

.gitignore: add test-dnssec

8 years ago.gitignore: add test-dnssec 2093/head
Evgeny Vereshchagin [Fri, 4 Dec 2015 01:32:15 +0000 (01:32 +0000)] 
.gitignore: add test-dnssec

This is a follow-up for 2b442ac87838be7c326

8 years agoresolved: update DNSSEC TODO list a bit 2092/head
Lennart Poettering [Thu, 3 Dec 2015 20:16:07 +0000 (21:16 +0100)] 
resolved: update DNSSEC TODO list a bit

8 years agoresolved: add a concept of "authenticated" responses
Lennart Poettering [Thu, 3 Dec 2015 20:04:52 +0000 (21:04 +0100)] 
resolved: add a concept of "authenticated" responses

This adds a new SD_RESOLVED_AUTHENTICATED flag for responses we return
on the bus. When set, then the data has been authenticated. For now this
mostly reflects the DNSSEC AD bit, if DNSSEC=trust is set. As soon as
the client-side validation is complete it will be hooked up to this flag
too.

We also set this bit whenver we generated the data ourselves, for
example, because it originates in our local LLMNR zone, or from the
built-in trust anchor database.

The "systemd-resolve-host" tool has been updated to show the flag state
for the data it shows.

8 years agoresolved: when synthesizing NODATA from cached NSEC bitmaps, honour CNAME/DNAME
Lennart Poettering [Thu, 3 Dec 2015 20:03:00 +0000 (21:03 +0100)] 
resolved: when synthesizing NODATA from cached NSEC bitmaps, honour CNAME/DNAME

When an RR type is not set in an NSEC, then the CNAME/DNAME types might
still be, hence check them too.

Otherwise we might end up refusing resolving of CNAME'd RRs if we cached
an NSEC before.

8 years agoresolved: maintain a short TODO list for DNSSEC support in the dnssec C files for now
Lennart Poettering [Thu, 3 Dec 2015 18:53:13 +0000 (19:53 +0100)] 
resolved: maintain a short TODO list for DNSSEC support in the dnssec C files for now

8 years agoresolved: introduce a dnssec_mode setting per scope
Lennart Poettering [Thu, 3 Dec 2015 18:51:04 +0000 (19:51 +0100)] 
resolved: introduce a dnssec_mode setting per scope

The setting controls which kind of DNSSEC validation is done: none at
all, trusting the AD bit, or client-side validation.

For now, no validation is implemented, hence the setting doesn't do much
yet, except of toggling the CD bit in the generated messages if full
client-side validation is requested.

8 years agoresolved: add a limit on the max DNSSEC RRSIG expiry skew we allow
Lennart Poettering [Thu, 3 Dec 2015 18:03:21 +0000 (19:03 +0100)] 
resolved: add a limit on the max DNSSEC RRSIG expiry skew we allow

8 years agoresolved: add a simple trust anchor database as additional RR source
Lennart Poettering [Thu, 3 Dec 2015 17:31:24 +0000 (18:31 +0100)] 
resolved: add a simple trust anchor database as additional RR source

When doing DNSSEC lookups we need to know one or more DS or DNSKEY RRs
as trust anchors to validate lookups. With this change we add a
compiled-in trust anchor database, serving the root DS key as of today,
retrieved from:

https://data.iana.org/root-anchors/root-anchors.xml

The interface is kept generic, so that additional DS or DNSKEY RRs may
be served via the same interface, for example by provisioning them
locally in external files to support "islands" of security.

The trust anchor database becomes the fourth source of RRs we maintain,
besides, the network, the local cache, and the local zone.

8 years agoresolved: rework how we allow allow queries to be dispatched to scopes
Lennart Poettering [Thu, 3 Dec 2015 17:26:12 +0000 (18:26 +0100)] 
resolved: rework how we allow allow queries to be dispatched to scopes

Previously, we'd never do any single-label or root domain lookups via
DNS, thus leaving single-label lookups to LLMNR and the search path
logic in order that single-label names don't leak too easily onto the
internet. With this change we open things up a bit, and only prohibit
A/AAAA lookups of single-label/root domains, but allow all other
lookups. This should provide similar protection, but allow us to resolve
DNSKEY+DS RRs for the top-level and root domains.

(This also simplifies handling of the search domain detection, and gets
rid of dns_scope_has_search_domains() in favour of
dns_scope_get_search_domains()).

8 years agoresolved: don't bother with picking a search domain when searching is disabled
Lennart Poettering [Thu, 3 Dec 2015 17:20:56 +0000 (18:20 +0100)] 
resolved: don't bother with picking a search domain when searching is disabled

8 years agoresolved: optionally, allocate DnsResourceKey objects on the stack
Lennart Poettering [Thu, 3 Dec 2015 16:27:13 +0000 (17:27 +0100)] 
resolved: optionally, allocate DnsResourceKey objects on the stack

Sometimes when looking up entries in hashmaps indexed by a
DnsResourceKey it is helpful not having to allocate a full
DnsResourceKey dynamically just to use it as search key. Instead,
optionally allow allocation of a DnsResourceKey on the stack. Resource
keys allocated like that of course are subject to other lifetime cycles
than the usual Resource keys, hence initialize the reference counter to
to (unsigned) -1.

While we are at it, remove the prototype for
dns_resource_key_new_dname() which was never implemented.

8 years agoresolved: make expiration error recognizable
Lennart Poettering [Thu, 3 Dec 2015 16:22:17 +0000 (17:22 +0100)] 
resolved: make expiration error recognizable

8 years agoresolved: refuse resolving of a number of domains listed in RFC6303
Lennart Poettering [Thu, 3 Dec 2015 16:20:47 +0000 (17:20 +0100)] 
resolved: refuse resolving of a number of domains listed in RFC6303

We already blacklisted a few domains, add more.

8 years agoMerge pull request #1934 from martinpitt/master
Tom Gundersen [Thu, 3 Dec 2015 17:22:06 +0000 (18:22 +0100)] 
Merge pull request #1934 from martinpitt/master

tests: add networkd integration test

8 years agoMerge pull request #2089 from keszybz/journal-fixes-2
Tom Gundersen [Thu, 3 Dec 2015 17:12:10 +0000 (18:12 +0100)] 
Merge pull request #2089 from keszybz/journal-fixes-2

Journal fixes

8 years agojournal: silently skip failing large messages if journald is missing 2089/head
Zbigniew Jędrzejewski-Szmek [Thu, 3 Dec 2015 07:44:50 +0000 (02:44 -0500)] 
journal: silently skip failing large messages if journald is missing

We treated -ENOENT errors with silent failure, for small messages.
Do the same for large messages.

8 years agojournal: unbreak sd_journal_sendv
Zbigniew Jędrzejewski-Szmek [Thu, 3 Dec 2015 07:20:39 +0000 (02:20 -0500)] 
journal: unbreak sd_journal_sendv

Borked since
commit 3ee897d6c2401effbc82f5eef35fce405781d6c8
Author: Lennart Poettering <lennart@poettering.net>
Date:   Wed Sep 23 01:00:04 2015 +0200

    tree-wide: port more code to use send_one_fd() and receive_one_fd()

because here our fd is not connected and we need to specify
the address.

8 years agotest-journal-send: add tests for sendv
Zbigniew Jędrzejewski-Szmek [Thu, 3 Dec 2015 05:45:59 +0000 (00:45 -0500)] 
test-journal-send: add tests for sendv

Also, check the return value of all calls.
They are documented to return 0, even if journald is not listening.

8 years agojournal: addition and multiplication do not commute
Zbigniew Jędrzejewski-Szmek [Thu, 3 Dec 2015 05:27:22 +0000 (00:27 -0500)] 
journal: addition and multiplication do not commute

8 years agotest-journal-send: no need to set log level
Zbigniew Jędrzejewski-Szmek [Thu, 3 Dec 2015 03:42:49 +0000 (22:42 -0500)] 
test-journal-send: no need to set log level

We only use the public api here, so don't include
log.h.

8 years agoMerge pull request #2087 from poettering/dnssec
Tom Gundersen [Thu, 3 Dec 2015 00:52:01 +0000 (01:52 +0100)] 
Merge pull request #2087 from poettering/dnssec

Basic DNSSEC support, and unrelated fixes

8 years agoresolved: support the RSASHA1_NSEC3_SHA1 pseudo-algorithm 2087/head
Lennart Poettering [Wed, 2 Dec 2015 23:39:44 +0000 (00:39 +0100)] 
resolved: support the RSASHA1_NSEC3_SHA1 pseudo-algorithm

RSASHA1_NSEC3_SHA1 is an alias for RSASHA1, used to do NSEC3 feature
negotiation. While verifying RRsets there's no difference, hence support
it here.

8 years agoresolved: synthesize NODATA cache results when we find matching NSEC RRs
Lennart Poettering [Wed, 2 Dec 2015 22:59:19 +0000 (23:59 +0100)] 
resolved: synthesize NODATA cache results when we find matching NSEC RRs

If we have a precisely matching NSEC RR for a name, we can use its type
bit field to synthesize NODATA cache lookup results for all types not
mentioned in there.

This is useful for mDNS where NSEC RRs are used to indicate missing RRs
for a specific type, but is beneficial in other cases too.

To test this, consider these two lines:

systemd-resolve-host -t NSEC nasa.gov
systemd-resolve-host -t SRV nasa.gov

The second line will not result in traffic as the first line already
cached the NSEC field.

8 years agoresolved: move algorithm/digest definitions into resolved-dns-rr.h
Lennart Poettering [Wed, 2 Dec 2015 21:56:04 +0000 (22:56 +0100)] 
resolved: move algorithm/digest definitions into resolved-dns-rr.h

After all, they are for flags and parameters of RRs and already relevant
when dealing with RRs outside of the serialization concept.

8 years agoresolved: don't accept expired RRSIGs
Lennart Poettering [Wed, 2 Dec 2015 21:47:28 +0000 (22:47 +0100)] 
resolved: don't accept expired RRSIGs

8 years agoresolved: add basic DNSSEC support
Lennart Poettering [Wed, 2 Dec 2015 20:20:37 +0000 (21:20 +0100)] 
resolved: add basic DNSSEC support

This adds most basic operation for doing DNSSEC validation on the
client side. However, it does not actually add the verification logic to
the resolver. Specifically, this patch only includes:

- Verifying DNSKEY RRs against a DS RRs
- Verifying RRSets against a combination of RRSIG and DNSKEY RRs
- Matching up RRSIG RRs and DNSKEY RRs
- Matching up RR keys and RRSIG RRs
- Calculating the DNSSEC key tag from a DNSKEY RR

All currently used DNSSEC combinations of SHA and RSA are implemented. Support
for MD5 hashing and DSA or EC cyphers are not. MD5 and DSA are probably
obsolete, and shouldn't be added. EC should probably be added
eventually, if it actually is deployed on the Internet.

8 years agoresolved: port ResolveRecord() bus call implementation to dns_resource_record_to_wire...
Lennart Poettering [Wed, 2 Dec 2015 20:05:21 +0000 (21:05 +0100)] 
resolved: port ResolveRecord() bus call implementation to dns_resource_record_to_wire_format()

Now that we have dns_resource_record_to_wire_format() we can generate
the RR serialization we return to bus clients in ResolveRecord() with
it. We pass the RR data along in the original form, not the DNSSEC
canonical form, since that would mean we'd lose RR name casing, which is
however important to keep for DNS-SD services and similar.

8 years agoresolved: add code to generate the wire format for a single RR
Lennart Poettering [Wed, 2 Dec 2015 19:58:51 +0000 (20:58 +0100)] 
resolved: add code to generate the wire format for a single RR

This adds dns_resource_record_to_wire_format() that generates the raw
wire-format of a single DnsResourceRecord object, and caches it in the
object, optionally in DNSSEC canonical form. This call is used later to
generate the RR serialization of RRs to verify.

This adds four new fields to DnsResourceRecord objects:

- wire_format points to the buffer with the wire-format version of the
  RR
- wire_format_size stores the size of that buffer
- wire_format_rdata_offset specifies the index into the buffer where the
  RDATA of the RR begins (i.e. the size of the key part of the RR).
- wire_format_canonical is a boolean that stores whether the cached wire
  format is in DNSSEC canonical form or not.

Note that this patch adds a mode where a DnsPacket is allocated on the
stack (instead of on the heap), so that it is cheaper to reuse the
DnsPacket object for generating this wire format. After all we reuse the
DnsPacket object for this, since it comes with all the dynamic memory
management, and serialization calls we need anyway.

8 years agoresolved: add code to map DNSSEC digest types to strings and back
Lennart Poettering [Wed, 2 Dec 2015 19:56:55 +0000 (20:56 +0100)] 
resolved: add code to map DNSSEC digest types to strings and back

8 years agoresolved: store DNSKEY fields flags+protocol as-is
Lennart Poettering [Wed, 2 Dec 2015 19:53:10 +0000 (20:53 +0100)] 
resolved: store DNSKEY fields flags+protocol as-is

When verifying signatures we need to be able to verify the original
data we got for an RR set, and that means we cannot simply drop flags
bits or consider RRs invalid too eagerly. Hence, instead of parsing the
DNSKEY flags store them as-is. Similar, accept the protocol field as it
is, and don't consider it a parsing error if it is not 3.

Of course, this means that the DNSKEY handling code later on needs to
check explicit for protocol != 3.

8 years agoresolved: add RFC 5702 defined DNSSEC algorithms to table
Lennart Poettering [Wed, 2 Dec 2015 19:51:07 +0000 (20:51 +0100)] 
resolved: add RFC 5702 defined DNSSEC algorithms to table

8 years agoutil-lib: update dns_name_to_wire_format() to optionally generate DNSSEC canonical...
Lennart Poettering [Wed, 2 Dec 2015 19:47:11 +0000 (20:47 +0100)] 
util-lib: update dns_name_to_wire_format() to optionally generate DNSSEC canonical names

We'll need this later when putting together RR serializations to
checksum.

8 years agoresolved: make sure DNS_ANSWER_FOREACH() can be nested
Lennart Poettering [Wed, 2 Dec 2015 19:43:11 +0000 (20:43 +0100)] 
resolved: make sure DNS_ANSWER_FOREACH() can be nested

Change the iterator counter so that a different varable is used for each
invocation of the macro, so that it may be nested.

8 years agoresolved: simplify dns_packet_append_string()
Lennart Poettering [Wed, 2 Dec 2015 19:35:02 +0000 (20:35 +0100)] 
resolved: simplify dns_packet_append_string()

It essentially does the same as dns_packet_append_raw_string(), hence
make it a wrapper around it.

8 years agohostnamed: SMBIOS 3.0 knows the "tablet" form factor, add support for it
Lennart Poettering [Wed, 2 Dec 2015 19:32:58 +0000 (20:32 +0100)] 
hostnamed: SMBIOS 3.0 knows the "tablet" form factor, add support for it

8 years agoMerge pull request #2073 from poettering/dns-label-fixes
Lennart Poettering [Wed, 2 Dec 2015 19:16:23 +0000 (20:16 +0100)] 
Merge pull request #2073 from poettering/dns-label-fixes

Dns label fixes + unrelated selinux clean-up

8 years agoMerge pull request #2084 from keszybz/ppc64-fixes-2
Lennart Poettering [Wed, 2 Dec 2015 19:15:34 +0000 (20:15 +0100)] 
Merge pull request #2084 from keszybz/ppc64-fixes-2

Test fixes to run in ppc64 mock

8 years agolz4: fix size check which had no chance of working on big-endian 2084/head
Zbigniew Jędrzejewski-Szmek [Wed, 2 Dec 2015 03:53:23 +0000 (22:53 -0500)] 
lz4: fix size check which had no chance of working on big-endian

8 years agotests: fix newlines in skip message
Zbigniew Jędrzejewski-Szmek [Wed, 2 Dec 2015 04:44:27 +0000 (23:44 -0500)] 
tests: fix newlines in skip message

8 years agotests: turn check if manager cannot be intialized into macro
Zbigniew Jędrzejewski-Szmek [Wed, 2 Dec 2015 03:35:16 +0000 (22:35 -0500)] 
tests: turn check if manager cannot be intialized into macro

We need to check the same thing in multiple tests. Use a shared
macro to make it easier to update the list of errnos.

Change the errno code for "unitialized cgroup fs" for ENOMEDIUM.
Exec format error looks like something more serious.

This fixes test-execute invocation in mock.

8 years agobasic/virt: add missing includes to compile on ppc64
Zbigniew Jędrzejewski-Szmek [Wed, 2 Dec 2015 03:54:26 +0000 (22:54 -0500)] 
basic/virt: add missing includes to compile on ppc64

8 years agoMerge pull request #2082 from phomes/basic-sort-includes
Tom Gundersen [Tue, 1 Dec 2015 23:27:02 +0000 (00:27 +0100)] 
Merge pull request #2082 from phomes/basic-sort-includes

basic: re-sort includes

8 years agobasic: re-sort includes 2082/head
Thomas Hindoe Paaboel Andersen [Tue, 1 Dec 2015 22:22:03 +0000 (23:22 +0100)] 
basic: re-sort includes

My previous patch to only include what we use accidentially placed
the added inlcudes in non-sorted order.

8 years agoMerge pull request #2074 from keszybz/test-acl-util-fix
Tom Gundersen [Mon, 30 Nov 2015 23:25:47 +0000 (00:25 +0100)] 
Merge pull request #2074 from keszybz/test-acl-util-fix

test-acl-util: fix two issues from review

8 years agoMerge pull request #2075 from phomes/includes-cleanup-basic
Tom Gundersen [Mon, 30 Nov 2015 23:25:07 +0000 (00:25 +0100)] 
Merge pull request #2075 from phomes/includes-cleanup-basic

basic: include only what we use

8 years agobasic: include only what we use 2075/head
Thomas Hindoe Paaboel Andersen [Mon, 30 Nov 2015 20:43:37 +0000 (21:43 +0100)] 
basic: include only what we use

This is a cleaned up result of running iwyu but without forward
declarations on src/basic.

8 years agotest-acl-util: fix two issues from review 2074/head
Zbigniew Jędrzejewski-Szmek [Mon, 30 Nov 2015 20:45:39 +0000 (15:45 -0500)] 
test-acl-util: fix two issues from review

https://github.com/systemd/systemd/pull/2063

8 years agocore: simplify selinux AVC initialization 2073/head
Lennart Poettering [Mon, 30 Nov 2015 19:26:03 +0000 (20:26 +0100)] 
core: simplify selinux AVC initialization

Let's merge access_init() and mac_selinux_access_init(), and only call
mac_selinux_use() once, inside the merged function, instead of multiple
times, including in the caller.

See comments on:

https://github.com/systemd/systemd/pull/2053

8 years agodns-domain: change error codes when dealing with too short buffers to ENOBUFS
Lennart Poettering [Mon, 30 Nov 2015 18:40:20 +0000 (19:40 +0100)] 
dns-domain: change error codes when dealing with too short buffers to ENOBUFS

Some calls used ENOBUFS to indicate too-short result buffers, others
used ENOSPC. Let's unify this on ENOBUFS.

8 years agodns-domain: check resulting domain name length in dns_name_to_wire_format()
Lennart Poettering [Mon, 30 Nov 2015 18:39:19 +0000 (19:39 +0100)] 
dns-domain: check resulting domain name length in dns_name_to_wire_format()

Let's better be safe than sorry.

8 years agodns-domain: make sure dns_name_to_wire_format() may properly encode the root domain
Lennart Poettering [Sun, 29 Nov 2015 13:29:31 +0000 (14:29 +0100)] 
dns-domain: make sure dns_name_to_wire_format() may properly encode the root domain

The root domain consists of zero labels, and we should be able to encode
that.

8 years agodns-domain: don't accept overly long hostnames
Lennart Poettering [Sun, 29 Nov 2015 13:27:28 +0000 (14:27 +0100)] 
dns-domain: don't accept overly long hostnames

Make sure dns_name_normalize(), dns_name_concat(), dns_name_is_valid()
do not accept/generate invalidly long hostnames, i.e. longer than 253
characters.

8 years agodns-domain: be more strict when encoding/decoding labels
Lennart Poettering [Sun, 29 Nov 2015 13:12:05 +0000 (14:12 +0100)] 
dns-domain: be more strict when encoding/decoding labels

Labels of zero length are not OK, refuse them early on. The concept of a
"zero-length label" doesn't exist, a zero-length full domain name
however does (representing the root domain). See RFC 2181, Section 11.

8 years agoMerge pull request #2068 from grawity/cgls-error-v2
Lennart Poettering [Mon, 30 Nov 2015 18:32:19 +0000 (19:32 +0100)] 
Merge pull request #2068 from grawity/cgls-error-v2

cgls: add a better error message for missing cgroupfs [v2]

8 years agoMerge pull request #2053 from poettering/selinux-fix
David Herrmann [Mon, 30 Nov 2015 18:30:03 +0000 (19:30 +0100)] 
Merge pull request #2053 from poettering/selinux-fix

Two unrelated fixes

8 years agocgls: add a better error message for missing cgroupfs 2068/head
Mantas Mikulėnas [Mon, 30 Nov 2015 06:48:29 +0000 (08:48 +0200)] 
cgls: add a better error message for missing cgroupfs

8 years agoMerge pull request #2063 from keszybz/issue-1977-2
Lennart Poettering [Mon, 30 Nov 2015 16:53:39 +0000 (17:53 +0100)] 
Merge pull request #2063 from keszybz/issue-1977-2

journal: clean up permission setting and acl adjustements on user journals

8 years agotmpfiles: set acls on system.journal explicitly 2063/head
Zbigniew Jędrzejewski-Szmek [Sun, 29 Nov 2015 23:48:40 +0000 (18:48 -0500)] 
tmpfiles: set acls on system.journal explicitly

https://github.com/systemd/systemd/issues/1397

8 years agotmpfiles: also set acls on /var/log/journal
Zbigniew Jędrzejewski-Szmek [Sun, 29 Nov 2015 23:37:01 +0000 (18:37 -0500)] 
tmpfiles: also set acls on /var/log/journal

This way, directories created later for containers or for
journald-remote, will be readable by adm & wheel groups by default,
similarly to /var/log/journal/%m itself.

https://github.com/systemd/systemd/issues/1971

8 years agoMerge pull request #2058 from phomes/unused-variable2
Ronny Chevalier [Sun, 29 Nov 2015 14:43:02 +0000 (15:43 +0100)] 
Merge pull request #2058 from phomes/unused-variable2

tree-wide: remove unused variables

8 years agotree-wide: remove unused variables 2058/head
Thomas Hindoe Paaboel Andersen [Sun, 29 Nov 2015 07:58:31 +0000 (08:58 +0100)] 
tree-wide: remove unused variables

8 years agoacl-util: only set the mask if not present
Zbigniew Jędrzejewski-Szmek [Sat, 28 Nov 2015 23:41:08 +0000 (18:41 -0500)] 
acl-util: only set the mask if not present

When we have non-owner user or group entries, we need the mask
for the acl to be valid. But acl_calc_mask() calculates the mask
to include all permissions, even those that were masked before.
Apparently this happens when we inherit *:r-x permissions from
a parent directory — the kernel sets *:r-x, mask:r--, effectively
masking the executable bit. acl_calc_mask() would set the mask:r-x,
effectively enabling the bit. To avoid this, be more conservative when
to add the mask entry: first iterate over all entries, and do nothing
if a mask.

This returns the code closer to J.A.Steffens' original version
in v204-90-g23ad4dd884.

Should fix https://github.com/systemd/systemd/issues/1977.

8 years agotest-acl-util: add new test
Zbigniew Jędrzejewski-Szmek [Sat, 28 Nov 2015 05:04:40 +0000 (00:04 -0500)] 
test-acl-util: add new test

For now, only add_acls_for_user is tested. When run under root, it
actually sets the acls. When run under non-root, it sets the acls for
the user, which does nothing, but at least calls the functions.

8 years agojournal: move the gist of server_fix_perms to acl-util.[hc]
Zbigniew Jędrzejewski-Szmek [Sat, 28 Nov 2015 03:24:33 +0000 (22:24 -0500)] 
journal: move the gist of server_fix_perms to acl-util.[hc]

Most of the function is moved to acl-util.c to make it possible to
add tests in subsequent commit.

Setting of the mode in server_fix_perms is removed:
- we either just created the file ourselves, and the permission be better right,
- or the file was already there, and we should not modify the permissions.

server_fix_perms is renamed to server_fix_acls to better reflect new
meaning, and made static because it is only used in one file.

8 years agolibsystemd: make sure we prefix even the dirty secrets in our API with "_sd_" 2053/head
Lennart Poettering [Fri, 27 Nov 2015 19:29:42 +0000 (20:29 +0100)] 
libsystemd: make sure we prefix even the dirty secrets in our API with "_sd_"

This renames __useless_struct_to_allow_trailing_semicolon__ everywhere
to _sd_useless_struct_to_allow_trailing_semicolon_, to follow our usual
rule of prefixing stuff from public headers that should be considered
internal with "_sd_".

While we are at it, also to be safe: when the struct is used in the C++
protector macros make sure to use two different names depending on
whether it appears in the C++ or C side of things. After all, there
might be compilers that don't consider C++ and C structs the same.

See https://github.com/systemd/systemd/pull/2052#discussion_r46067059

8 years agoselinux: split up mac_selinux_have() from mac_selinux_use()
Lennart Poettering [Fri, 27 Nov 2015 19:22:56 +0000 (20:22 +0100)] 
selinux: split up mac_selinux_have() from mac_selinux_use()

Let's distuingish the cases where our code takes an active role in
selinux management, or just passively reports whatever selinux
properties are set.

mac_selinux_have() now checks whether selinux is around for the passive
stuff, and mac_selinux_use() for the active stuff. The latter checks the
former, plus also checks UID == 0, under the assumption that only when
we run priviliged selinux management really makes sense.

Fixes: #1941
8 years agoMerge pull request #2052 from poettering/export-cleanup
David Herrmann [Fri, 27 Nov 2015 19:26:33 +0000 (20:26 +0100)] 
Merge pull request #2052 from poettering/export-cleanup

Make gcc cleanup helper calls public in most of our sd-xyz APIs

8 years agoMerge pull request #2043 from teg/resolved-edns0-5
Lennart Poettering [Fri, 27 Nov 2015 18:29:04 +0000 (19:29 +0100)] 
Merge pull request #2043 from teg/resolved-edns0-5

resolved: add edns0 support

8 years agoresolved: add one more comment with a link to the matching RFC 2052/head
Lennart Poettering [Fri, 27 Nov 2015 18:22:35 +0000 (19:22 +0100)] 
resolved: add one more comment with a link to the matching RFC

8 years agoutil-lib: move nss-util.h from shared/ to basic/
Lennart Poettering [Fri, 27 Nov 2015 18:21:15 +0000 (19:21 +0100)] 
util-lib: move nss-util.h from shared/ to basic/

The header file defines some helpers for GLIBC NSS and doesn't include
anything else but glibc headers, hence there's little reason to keep it
in shared/.

See: #2008

8 years agotree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy
Lennart Poettering [Fri, 27 Nov 2015 18:13:45 +0000 (19:13 +0100)] 
tree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy

GLIB has recently started to officially support the gcc cleanup
attribute in its public API, hence let's do the same for our APIs.

With this patch we'll define an xyz_unrefp() call for each public
xyz_unref() call, to make it easy to use inside a
__attribute__((cleanup())) expression. Then, all code is ported over to
make use of this.

The new calls are also documented in the man pages, with examples how to
use them (well, I only added docs where the _unref() call itself already
had docs, and the examples, only cover sd_bus_unrefp() and
sd_event_unrefp()).

This also renames sd_lldp_free() to sd_lldp_unref(), since that's how we
tend to call our destructors these days.

Note that this defines no public macro that wraps gcc's attribute and
makes it easier to use. While I think it's our duty in the library to
make our stuff easy to use, I figure it's not our duty to make gcc's own
features easy to use on its own. Most likely, client code which wants to
make use of this should define its own:

       #define _cleanup_(function) __attribute__((cleanup(function)))

Or similar, to make the gcc feature easier to use.

Making this logic public has the benefit that we can remove three header
files whose only purpose was to define these functions internally.

See #2008.

8 years agoMerge pull request #2049 from evverx/journal-test-dont-run-on-incomplete-setup
Daniel Mack [Fri, 27 Nov 2015 14:26:21 +0000 (15:26 +0100)] 
Merge pull request #2049 from evverx/journal-test-dont-run-on-incomplete-setup

tests: don't run test on incomplete setup; use sync

8 years agotests: use sync instead of flush 2049/head
Evgeny Vereshchagin [Fri, 27 Nov 2015 13:55:23 +0000 (13:55 +0000)] 
tests: use sync instead of flush

flush doesn't sync a journal -> tests sometimes fail

8 years agoMerge pull request #2048 from poettering/fork-errno
Daniel Mack [Fri, 27 Nov 2015 13:35:56 +0000 (14:35 +0100)] 
Merge pull request #2048 from poettering/fork-errno

core:execute: fix fork() fail handling in exec_spawn()

8 years agotests: don't run test on incomplete setup
Evgeny Vereshchagin [Fri, 27 Nov 2015 13:29:51 +0000 (13:29 +0000)] 
tests: don't run test on incomplete setup

This is a follow-up commit for
https://github.com/systemd/systemd/pull/1937

See https://github.com/systemd/systemd/pull/2030

8 years agocore:execute: fix fork() fail handling in exec_spawn() 2048/head
lc85446 [Thu, 26 Nov 2015 03:46:40 +0000 (11:46 +0800)] 
core:execute: fix fork() fail handling in exec_spawn()

    If pid < 0 after fork(), 0 is always returned because r =
    exec_context_load_environment() has exited successfully.

    This will make the caller of exec_spawn() not able to handle
    the fork() error case and make systemd abort assert() possibly.

8 years agoMerge pull request #1833 from utezduyar/drop-warning-on-preset
Lennart Poettering [Fri, 27 Nov 2015 13:06:36 +0000 (14:06 +0100)] 
Merge pull request #1833 from utezduyar/drop-warning-on-preset

drop warning if setting preset worked anyways

8 years agoMerge pull request #1937 from evverx/fix-stdout-parsing
Lennart Poettering [Fri, 27 Nov 2015 13:03:49 +0000 (14:03 +0100)] 
Merge pull request #1937 from evverx/fix-stdout-parsing

Fix stdout stream parsing

8 years agoMerge pull request #2017 from haraldh/nobinddevice2
Lennart Poettering [Fri, 27 Nov 2015 13:02:25 +0000 (14:02 +0100)] 
Merge pull request #2017 from haraldh/nobinddevice2

core: Do not bind a mount unit to a device, if it was from mountinfo

8 years agoMerge pull request #1828 from fbuihuu/set-property-on-inactive-unit
Lennart Poettering [Fri, 27 Nov 2015 13:00:57 +0000 (14:00 +0100)] 
Merge pull request #1828 from fbuihuu/set-property-on-inactive-unit

core: allow 'SetUnitProperties()' to run on inactive units too

8 years agoMerge pull request #1989 from keszybz/filetriggers-v2
Lennart Poettering [Fri, 27 Nov 2015 12:52:43 +0000 (13:52 +0100)] 
Merge pull request #1989 from keszybz/filetriggers-v2

Return of the file triggers

8 years agoMerge pull request #2040 from keszybz/randomized-delay
Lennart Poettering [Fri, 27 Nov 2015 12:48:12 +0000 (13:48 +0100)] 
Merge pull request #2040 from keszybz/randomized-delay

core: rename Random* to RandomizedDelay*

8 years agoMerge pull request #2046 from evverx/rlimit-parsing
Daniel Mack [Fri, 27 Nov 2015 11:45:04 +0000 (12:45 +0100)] 
Merge pull request #2046 from evverx/rlimit-parsing

Fix rlimit parsing