chiark / gitweb /
6 years agotests: add test-path
Ronny Chevalier [Wed, 5 Nov 2014 20:27:01 +0000 (21:27 +0100)]
tests: add test-path

It tests all available directives of Path units:
- PathChanged
- PathModified
- PathExists
- PathExisysGlob
- DirectoryNotEmpty
- MakeDirectory
- DirectoryMode
- Unit

6 years agonetwork: fix typo
Rami Rosen [Sat, 8 Nov 2014 10:59:01 +0000 (12:59 +0200)]
network: fix typo


6 years agoman: document --failed
Zbigniew Jędrzejewski-Szmek [Fri, 7 Nov 2014 23:11:53 +0000 (18:11 -0500)]
man: document --failed

6 years agoshared: add readlink_value
Tom Gundersen [Fri, 7 Nov 2014 18:19:02 +0000 (19:19 +0100)]
shared: add readlink_value

Reads the basename of the target of a symlink.

6 years agosysusers: be nice and print a warning if futimens() fails
Lennart Poettering [Fri, 7 Nov 2014 15:34:37 +0000 (16:34 +0100)]
sysusers: be nice and print a warning if futimens() fails

CID# 1251163

6 years agoutf8: when looking at the next unichar, honour the size parameter, in utf8_is_printab...
Lennart Poettering [Fri, 7 Nov 2014 15:34:00 +0000 (16:34 +0100)]
utf8: when looking at the next unichar, honour the size parameter, in utf8_is_printable_newline()

6 years agolog: explicitly ignore return value of parse_proc_cmdline()
Lennart Poettering [Fri, 7 Nov 2014 15:33:03 +0000 (16:33 +0100)]
log: explicitly ignore return value of parse_proc_cmdline()

CID# 1251162

6 years agocore: unify how we create the notify and private dbus socket
Lennart Poettering [Fri, 7 Nov 2014 15:32:06 +0000 (16:32 +0100)]
core: unify how we create the notify and private dbus socket

Use the same robust logic of mkdir + unlink of any existing AF_UNIX
socket, ignoring the return value, right before bind().

6 years agoupdate TODO
Lennart Poettering [Fri, 7 Nov 2014 15:31:42 +0000 (16:31 +0100)]
update TODO

6 years agoman: update bootup(7) for asynchronous
Zbigniew Jędrzejewski-Szmek [Fri, 7 Nov 2014 02:37:44 +0000 (21:37 -0500)]
man: update bootup(7) for asynchronous

6 years agomanager: cast mkdir() result to (void) to make sure coverity is quiet
Lennart Poettering [Fri, 7 Nov 2014 01:05:50 +0000 (02:05 +0100)]
manager: cast mkdir() result to (void) to make sure coverity is quiet

Also simplify the code a bit by moving mkdir to the common path.

6 years agoupdate TODO
Lennart Poettering [Fri, 7 Nov 2014 01:01:47 +0000 (02:01 +0100)]
update TODO

6 years agoutil: simplify normalize_env_assignment() a bit
Lennart Poettering [Fri, 7 Nov 2014 00:19:48 +0000 (01:19 +0100)]
util: simplify normalize_env_assignment() a bit

6 years agoutil: file_is_priv_sticky() is used internally in util.c only nowadays, make it static
Lennart Poettering [Fri, 7 Nov 2014 00:19:14 +0000 (01:19 +0100)]
util: file_is_priv_sticky() is used internally in util.c only nowadays, make it static

6 years agoupdate TODO
Lennart Poettering [Fri, 7 Nov 2014 00:10:57 +0000 (01:10 +0100)]
update TODO

6 years agotimer: reenable TIMER_ACTIVE timers when restarted
Michael Chapman [Thu, 6 Nov 2014 08:47:02 +0000 (19:47 +1100)]
timer: reenable TIMER_ACTIVE timers when restarted

A timer configured with OnActiveSec will start its associated unit again
if the timer is stopped, then started. However, if the timer unit is
restarted -- with "systemctl restart", say -- this does not occur.

This commit ensures that TIMER_ACTIVE timers are re-enabled whenever the
timer is started, even if that's within a restart job.

6 years agoutil: rework /proc/cmdline parser to use unquote_first_word()
Lennart Poettering [Thu, 6 Nov 2014 23:10:24 +0000 (00:10 +0100)]
util: rework /proc/cmdline parser to use unquote_first_word()

6 years agoutil: simplify proc_cmdline() to reuse get_process_cmdline()
Lennart Poettering [Thu, 6 Nov 2014 20:53:34 +0000 (21:53 +0100)]
util: simplify proc_cmdline() to reuse get_process_cmdline()

Also, make all parsing of the kernel cmdline non-fatal.

6 years agofileio: simplify write_string_file_atomic() by reusing write_string_stream()
Lennart Poettering [Thu, 6 Nov 2014 20:21:39 +0000 (21:21 +0100)]
fileio: simplify write_string_file_atomic() by reusing write_string_stream()

6 years agocopy: change error code when hitting copy limit to EFBIG
Lennart Poettering [Thu, 6 Nov 2014 20:20:32 +0000 (21:20 +0100)]
copy: change error code when hitting copy limit to EFBIG

After all, this is about files, not arguments, hence EFBIG is more
appropriate than E2BIG

6 years agocopy: teach copy_bytes() sendfile() support, and then replace sendfile_full() by it
Lennart Poettering [Thu, 6 Nov 2014 20:19:20 +0000 (21:19 +0100)]
copy: teach copy_bytes() sendfile() support, and then replace sendfile_full() by it

6 years agoutil: make use of isempty() where appropriate
Lennart Poettering [Thu, 6 Nov 2014 20:11:10 +0000 (21:11 +0100)]
util: make use of isempty() where appropriate

6 years agoshutdown: fix arguments to /run/initramfs/shutdown
Michal Schmidt [Thu, 6 Nov 2014 21:24:13 +0000 (22:24 +0100)]
shutdown: fix arguments to /run/initramfs/shutdown

Our initrd interface specifies that the verb is in argv[1].
This is where systemd passes it to systemd-shutdown, but getopt
permutes argv[]. This confuses dracut's shutdown script:
  Shutdown called with argument '--log-level'. Rebooting!

getopt can be convinced to not permute argv[] by having '-' as the first
character of optstring. Let's use it. This requires changing the way
non-option arguments (in our case, the verb) are processed.

This fixes a bug where the system would reboot instead of powering off.

6 years agoupdate TODO
Lennart Poettering [Thu, 6 Nov 2014 19:09:27 +0000 (20:09 +0100)]
update TODO

6 years agos/command-line/command line/g
Lennart Poettering [Thu, 6 Nov 2014 19:06:30 +0000 (20:06 +0100)]
s/command-line/command line/g

A follow-up to:

commit 3f85ef0f05ffc51e19f86fb83a1c51e8e3cd6817
Author: Harald Hoyer <>
Date:   Thu Nov 6 15:33:48 2014 +0100

    s/commandline/command line/g

6 years agomachined: reorder method calls in vtable
Lennart Poettering [Thu, 6 Nov 2014 19:00:14 +0000 (20:00 +0100)]
machined: reorder method calls in vtable

6 years agoswitch-root: explain why we don't care about base_filesystem_create() failing
Lennart Poettering [Thu, 6 Nov 2014 19:00:01 +0000 (20:00 +0100)]
switch-root: explain why we don't care about base_filesystem_create() failing

6 years agoshared: create files even if the SELinux policy has no context for them
Michal Schmidt [Thu, 6 Nov 2014 15:48:11 +0000 (16:48 +0100)]
shared: create files even if the SELinux policy has no context for them

The SELinux policy defines no context for some files. E.g.:
  $ matchpathcon /run/lock/subsys /dev/mqueue
  /run/lock/subsys        <<none>>
  /dev/mqueue     <<none>>

We still need to be able to create them.
In this case selabel_lookup_raw() returns ENOENT. We should then skip
setfscreatecon(), but still return success.
It was broken since c34255bdb2 ("label: unify code to make directories,

6 years agos/commandline/command line/g
Harald Hoyer [Thu, 6 Nov 2014 14:33:48 +0000 (15:33 +0100)]
s/commandline/command line/g

6 years agoswitch_root: do not fail, if base_filesystem_create() failed
Harald Hoyer [Wed, 3 Sep 2014 11:31:25 +0000 (13:31 +0200)]
switch_root: do not fail, if base_filesystem_create() failed

Not all switch roots are like base_filesystem_create() wants them
to look like. They might even boot, if they are RO and don't have the FS
layout. Just ignore the error and switch_root nevertheless.

base_filesystem_create() should have logged, what went wrong.

6 years agoREADME: mention that engineering services for systemd are available from endocode
Lennart Poettering [Thu, 6 Nov 2014 14:27:13 +0000 (15:27 +0100)]
README: mention that engineering services for systemd are available from endocode

6 years agosystemctl: when invokes as "reboot -f", sync()
Lennart Poettering [Thu, 6 Nov 2014 14:20:29 +0000 (15:20 +0100)]
systemctl: when invokes as "reboot -f", sync()

We do this in the clean shutdown path in shutdown.c, hence we should do
is for "reboot -f", too.

6 years agohostnamed: introduce new "embedded" chassis type
Lennart Poettering [Thu, 6 Nov 2014 13:37:12 +0000 (14:37 +0100)]
hostnamed: introduce new "embedded" chassis type

We really don't want to get lost in adding fridge, car, plane, drone, or
whatever else, hence add a generic term "embedded" cover all the cases
where the computer is just part of something bigger, and not at the
focus of things.

6 years agoupdate TODO
Lennart Poettering [Thu, 6 Nov 2014 13:31:04 +0000 (14:31 +0100)]
update TODO

6 years agoshared: rename condition-util.[ch] to condition.[ch]
Lennart Poettering [Thu, 6 Nov 2014 13:19:05 +0000 (14:19 +0100)]
shared: rename condition-util.[ch] to condition.[ch]

Now that we only have one file with condition implementations around, we
can drop the -util suffix and simplify things a bit.

6 years agocore: get rid of condition.c and move the remaining call into util.c
Lennart Poettering [Thu, 6 Nov 2014 13:09:51 +0000 (14:09 +0100)]
core: get rid of condition.c and move the remaining call into util.c

That way only one file with condition code remaining, in src/shared/,
rather than src/core/.

Next step: dropping the "-util" suffix from condition-util.[ch].

6 years agoman: document that we don't document .include on purpose
Lennart Poettering [Thu, 6 Nov 2014 13:00:05 +0000 (14:00 +0100)]
man: document that we don't document .include on purpose

<!-- xml comments are useful! -->

6 years agoman: don't document ConditionNull=/AssertNull= as the are not particularly useful...
Lennart Poettering [Thu, 6 Nov 2014 12:59:41 +0000 (13:59 +0100)]
man: don't document ConditionNull=/AssertNull= as the are not particularly useful and simply confusing

6 years agocondition: order condition types the same way in man page, enum, tables
Lennart Poettering [Thu, 6 Nov 2014 12:56:22 +0000 (13:56 +0100)]
condition: order condition types the same way in man page, enum, tables

Yes, sometimes I develop OCD.

6 years agocore: introduce the concept of AssertXYZ= similar to ConditionXYZ=, but fatal for...
Lennart Poettering [Thu, 6 Nov 2014 12:43:45 +0000 (13:43 +0100)]
core: introduce the concept of AssertXYZ= similar to ConditionXYZ=, but fatal for a start job if not met

6 years agocondition: record test state internally and beef it up to be a full enum
Lennart Poettering [Thu, 6 Nov 2014 01:27:10 +0000 (02:27 +0100)]
condition: record test state internally and beef it up to be a full enum

6 years agocondition: add more test cases
Lennart Poettering [Thu, 6 Nov 2014 01:11:08 +0000 (02:11 +0100)]
condition: add more test cases

6 years agojournal: adjust audit log messages a bit
Lennart Poettering [Thu, 6 Nov 2014 01:10:56 +0000 (02:10 +0100)]
journal: adjust audit log messages a bit

6 years agocondition: internalize condition test functions
Lennart Poettering [Thu, 6 Nov 2014 01:02:13 +0000 (02:02 +0100)]
condition: internalize condition test functions

Also, implement the negation check inside of condition_test() instead of
individually in each test function.

6 years agocondition: unify condition logic in one file
Lennart Poettering [Thu, 6 Nov 2014 00:40:37 +0000 (01:40 +0100)]
condition: unify condition logic in one file

6 years agocondition: properly allow passing back errors from condition checks
Lennart Poettering [Wed, 5 Nov 2014 23:49:44 +0000 (00:49 +0100)]
condition: properly allow passing back errors from condition checks

6 years agounits: restore job timeouts for poweroff and reboot
Zbigniew Jędrzejewski-Szmek [Thu, 6 Nov 2014 13:15:48 +0000 (08:15 -0500)]
units: restore job timeouts for poweroff and reboot

It seems that there actually aren't any long running tasks which are
performed at shutdown. If it turns out that there actually are, this
should be revisited.

This reverts most of commit 038193efa6.

6 years agologin: rerun vconsole-setup when switching from vgacon to fbcon
Ray Strode [Wed, 5 Nov 2014 13:30:52 +0000 (08:30 -0500)]
login: rerun vconsole-setup when switching from vgacon to fbcon

The initialization performed by systemd-vconsole-setup is reset
when changing console drivers (say from vgacon to fbcon), so we
need to run it in that case.


This commit adds a udev rule to make systemd-vconsole-setup get run when
the fbcon device becomes available.

(david: moved into new file 90-vconsole.rules instead of 71-seats.rules;
        build-failures are on me, not on Ray)

6 years agounits: disable job timeouts
Zbigniew Jędrzejewski-Szmek [Wed, 5 Nov 2014 14:16:58 +0000 (09:16 -0500)]
units: disable job timeouts

For boot, we might kill fsck in the middle, with likely catastrophic

On shutdown there might be other jobs, like downloading of updates for
installation, and other custom jobs. It seems better to schedule an
individual timeout on each one separately, when it is known what
timeout is useful.

Disable the timeouts for now, until we have a clearer picture of how
we can deal with long-running jobs.

6 years agoudev hwdb: Change error message regarding missing hwdb.bin back to debug.
Colin Guthrie [Wed, 5 Nov 2014 15:29:41 +0000 (15:29 +0000)]
udev hwdb: Change error message regarding missing hwdb.bin back to debug.

When used in an initramfs, it's expected that the hwdb.bin file is
not present (it makes for a very large initramfs otherwise).

While it's nice to tell the user about this, as it's not strictly
speaking an error we really shouldn't be so forceful in our

6 years agoutil: minor modernisations
Lennart Poettering [Wed, 5 Nov 2014 18:44:01 +0000 (19:44 +0100)]
util: minor modernisations

6 years agocondition: rewrite condition_test_kernel_command_line() based on unquote_first_word()
Lennart Poettering [Wed, 5 Nov 2014 18:43:55 +0000 (19:43 +0100)]
condition: rewrite condition_test_kernel_command_line() based on unquote_first_word()

6 years agosd-pppoe: spelling
Tom Gundersen [Wed, 5 Nov 2014 18:32:46 +0000 (19:32 +0100)]
sd-pppoe: spelling

Thanks to Daniele Medri

6 years agosd-bus: by default allow all creds to be passed along
Lennart Poettering [Wed, 5 Nov 2014 17:54:50 +0000 (18:54 +0100)]
sd-bus: by default allow all creds to be passed along

6 years agocore: introduce new Delegate=yes/no property controlling creation of cgroup subhierar...
Lennart Poettering [Wed, 5 Nov 2014 16:57:23 +0000 (17:57 +0100)]
core: introduce new Delegate=yes/no property controlling creation of cgroup subhierarchies

For priviliged units this resource control property ensures that the
processes have all controllers systemd manages enabled.

For unpriviliged services (those with User= set) this ensures that
access rights to the service cgroup is granted to the user in question,
to create further subgroups. Note that this only applies to the
name=systemd hierarchy though, as access to other controllers is not
safe for unpriviliged processes.

Delegate=yes should be set for container scopes where a systemd instance
inside the container shall manage the hierarchies below its own cgroup
and have access to all controllers.

Delegate=yes should also be set for user@.service, so that systemd
--user can run, controlling its own cgroup tree.

This commit changes machined, systemd-nspawn@.service and user@.service
to set this boolean, in order to ensure that container management will
just work, and the user systemd instance can run fine.

6 years agolibsystemd-network: don't use unaligned helpers in _packed_ structs
Tom Gundersen [Tue, 4 Nov 2014 19:19:07 +0000 (20:19 +0100)]
libsystemd-network: don't use unaligned helpers in _packed_ structs

The compiler will do this for us.

6 years agoshared: unaligned - use void* instead of unaligned be16_t*
Tom Gundersen [Tue, 4 Nov 2014 18:52:04 +0000 (19:52 +0100)]
shared: unaligned - use void* instead of unaligned be16_t*

6 years agosd-pppoe: whitespace
Tom Gundersen [Tue, 4 Nov 2014 15:21:41 +0000 (16:21 +0100)]
sd-pppoe: whitespace

6 years agotest: hashmap-plain - make coverity happy
Tom Gundersen [Tue, 4 Nov 2014 15:20:22 +0000 (16:20 +0100)]
test: hashmap-plain - make coverity happy

Check return value of hashmap_ensure_allocated().


6 years agotest: fileio - make coverity happy
Tom Gundersen [Tue, 4 Nov 2014 15:19:26 +0000 (16:19 +0100)]
test: fileio - make coverity happy

Explicitly check the length of the read.

Fixes CID#1250803.

6 years agoshared: ptyfwd - make coverity happy
Tom Gundersen [Tue, 4 Nov 2014 15:13:43 +0000 (16:13 +0100)]
shared: ptyfwd - make coverity happy

Explicitly ignore return value of ioctl to set window size.

Fixes CID#1250804 and CID#1250800.

6 years agomanager: Ensure user's systemd runtime directory exists.
Colin Guthrie [Sun, 2 Nov 2014 13:33:16 +0000 (13:33 +0000)]
manager: Ensure user's systemd runtime directory exists.

This mirrors code in dbus.c when creating the private socket and
avoids error messages like:

systemd[1353]: bind(/run/user/603/systemd/notify) failed: No such file or directory
systemd[1353]: Failed to fully start up daemon: No such file or directory

6 years agosd-bus: sync up with new kdbus metadata attachment logic (ABI break)
Daniel Mack [Wed, 5 Nov 2014 13:32:48 +0000 (14:32 +0100)]
sd-bus: sync up with new kdbus metadata attachment logic (ABI break)

The metadata logic in kdbus has seen a rework, and the only mandatory
change we have to follow for now is that attach_flags in kdbus_cmd_hello
is now split into two parts, attach_flags_send and attach_flags_recv.

6 years agoudev: avoid magic constants in kernel-cmdline parsers
David Herrmann [Wed, 5 Nov 2014 11:56:49 +0000 (12:56 +0100)]
udev: avoid magic constants in kernel-cmdline parsers

Lets recognize the fact that startswith() returns a pointer to the tail on
success. Use it instead of hard-coding string-lengths as magic constants.

6 years agoudev: Fix parsing of udev.event-timeout kernel parameter.
Richard W.M. Jones [Tue, 4 Nov 2014 23:45:15 +0000 (23:45 +0000)]
udev: Fix parsing of udev.event-timeout kernel parameter.

6 years agobuildsys: test-util needs -lm for fabs()
Cristian Rodríguez [Tue, 4 Nov 2014 23:48:08 +0000 (20:48 -0300)]
buildsys: test-util needs -lm for fabs()

6 years agounits: make systemd-journald.service Type=notify
Michal Schmidt [Tue, 4 Nov 2014 19:28:08 +0000 (20:28 +0100)]
units: make systemd-journald.service Type=notify

It already calls sd_notify(), so it looks like an oversight.

Without it, its ordering to systemd-journal-flush.service is
non-deterministic and the SIGUSR1 from flushing may kill journald before
it has its signal handlers set up.

6 years agoman/tmpfiles.d: fix typo
Jan Synacek [Tue, 4 Nov 2014 12:38:59 +0000 (13:38 +0100)]
man/tmpfiles.d: fix typo

6 years agoTODO: update
Kay Sievers [Tue, 4 Nov 2014 18:07:30 +0000 (19:07 +0100)]
TODO: update

6 years agoutil: when sealing memfds, also use F_SEAL_SEAL
Lennart Poettering [Tue, 4 Nov 2014 17:52:31 +0000 (18:52 +0100)]
util: when sealing memfds, also use F_SEAL_SEAL

Let's be strict here, since its better to be safe than sorry.

6 years agoupdate TODO
Lennart Poettering [Tue, 4 Nov 2014 17:51:37 +0000 (18:51 +0100)]
update TODO

6 years agoupdate TODO
Lennart Poettering [Tue, 4 Nov 2014 16:54:40 +0000 (17:54 +0100)]
update TODO

6 years agosd-bus: rename sd_bus_get_server_id() to sd_bus_get_owner_id()
Lennart Poettering [Tue, 4 Nov 2014 16:24:30 +0000 (17:24 +0100)]
sd-bus: rename sd_bus_get_server_id() to sd_bus_get_owner_id()

In kdbus a "server id" is mostly a misnomer, as there isn't any "server"
involved anymore. Let's rename this to "owner" id hence, since it is an
ID that is picked by the owner of a bus or direct connection. This
matches nicely the sd_bus_get_owner_creds() call we already have.

6 years agosd-bus,sd-event: unify error handling of object descriptions
Lennart Poettering [Tue, 4 Nov 2014 15:58:42 +0000 (16:58 +0100)]
sd-bus,sd-event: unify error handling of object descriptions

a) When getting the description return ENXIO if none is set

b) Allow setting a description to NULL

c) return ECHILD on fork() like for other calls

6 years agosd-bus: make use of free_and_strdup() where it makes sense
Lennart Poettering [Tue, 4 Nov 2014 15:58:15 +0000 (16:58 +0100)]
sd-bus: make use of free_and_strdup() where it makes sense

6 years agosd-bus: also allow setting descriptions on bus slots
Lennart Poettering [Tue, 4 Nov 2014 15:57:38 +0000 (16:57 +0100)]
sd-bus: also allow setting descriptions on bus slots

6 years agosd-event: implicitly set signal event source's descriptions to the signal name
Lennart Poettering [Tue, 4 Nov 2014 15:34:20 +0000 (16:34 +0100)]
sd-event: implicitly set signal event source's descriptions to the signal name

6 years agosd-event: rename sd_event_source_set_name() to sd_event_source_get_name()
Lennart Poettering [Tue, 4 Nov 2014 15:27:05 +0000 (16:27 +0100)]
sd-event: rename sd_event_source_set_name() to sd_event_source_get_name()

To mirror the recent name change of the concept for sd_bus objects,
follow the same logic for sd_event_source objects, too.

6 years agotest: use assert_se in test_hashmap_move
Michal Schmidt [Tue, 4 Nov 2014 16:04:16 +0000 (17:04 +0100)]
test: use assert_se in test_hashmap_move

6 years agosd-bus: rename "connection name" to "description" for the sd-bus API too
Lennart Poettering [Tue, 4 Nov 2014 15:13:49 +0000 (16:13 +0100)]
sd-bus: rename "connection name" to "description" for the sd-bus API too

kdbus recently renamed this concept, and so should we in what we expose
in userspace.

6 years agosd-bus: sync kdbus.h (ABI break)
Daniel Mack [Tue, 4 Nov 2014 11:08:36 +0000 (12:08 +0100)]
sd-bus: sync kdbus.h (ABI break)

Catch up with some changes in kdbus.h:

  * KDBUS_{ITEM,ATTACH}_CONN_NAME were renamed to
    KDBUS_{ITEM,ATTACH}_CONN_DESCRIPTION, so the term 'name' is not
    overloaded as much.

  * The item types were re-ordered a little so they are lined up to the
    order of the corresponding KDBUS_ATTACH flags

  * A new item type KDBUS_ITEM_OWNED_NAME was introduced, designated to
    store a struct kdbus_name in item->name. KDBUS_ITEM_NAME soley
    stores data in item->str now

  * Some kerneldoc fixes

6 years agobarrier: explicitly ignore return values of barrier_place()
David Herrmann [Tue, 4 Nov 2014 08:49:43 +0000 (09:49 +0100)]
barrier: explicitly ignore return values of barrier_place()

The barrier implementation tracks remote states internally. There is no
need to check the return value of any barrier_*() function if the caller
is not interested in the result. The barrier helpers only return the state
of the remote side, which is usually not interesting as later calls to
barrier_sync() will catch this, anyway.

Shut up coverity by explicitly ignoring return values of barrier_place()
if we're not interested in it.

6 years agoutil: introduce negative_errno()
David Herrmann [Mon, 3 Nov 2014 17:23:28 +0000 (18:23 +0100)]
util: introduce negative_errno()

Imagine a constructor like this:

        int object_new(void **out) {
                void *my_object;
                int r;

                r = ioctl(...);
                if (r < 0)
                        return -errno;

                *out = my_object;
                return 0;

We have a lot of those in systemd. If you now call those, gcc might inline
the call and optimize it. However, gcc cannot know that "errno" is
negative if "r" is. Therefore, a caller like this will produce warnings:

        r = object_new(&obj);
        if (r < 0)
                return r;

        obj->xyz = "foobar";

In case the ioctl in the constructor fails, gcc might assume "errno" is 0
and thus the error-handling is not triggered. Therefore, "obj" is
uninitialized, but accessed. Gcc will warn about that.

The new negative_errno() helper can be used to mitigate those warnings.
The helper is guaranteed to return a negative integer. Furthermore, it
spills out runtime warnings if "errno" is non-negative.

Instead of returning "-errno", you can use:
        return negative_errno();

gcc will no longer assume that this can return >=0, thus, it will not warn
about it.

Use this new helper in libsystemd-terminal to fix some grdev-drm warnings.

6 years agoProperly define the __NR_memfd_create macro for MIPS
Vicente Olivert Riera [Mon, 3 Nov 2014 14:48:35 +0000 (14:48 +0000)]
Properly define the __NR_memfd_create macro for MIPS

This macro exists for MIPS since v3.17:

6 years agolocalectl: fix localectl set-x11-keymap syntax description
Jan Synacek [Mon, 3 Nov 2014 13:01:04 +0000 (14:01 +0100)]
localectl: fix localectl set-x11-keymap syntax description

This complements the fix in:

    commit cd4c6fb12598435fe24431f1dd616f9582f0e3bd
    Author: Jan Synacek <>
    Date:   Mon Oct 20 12:43:39 2014 +0200

        man: fix localectl set-x11-keymap syntax description

6 years agojournald: include audit message type number in MESSAGE= string
Lennart Poettering [Tue, 4 Nov 2014 00:00:50 +0000 (01:00 +0100)]
journald: include audit message type number in MESSAGE= string

6 years agojournal: also consider audit fields with '-' valid
Lennart Poettering [Mon, 3 Nov 2014 23:48:32 +0000 (00:48 +0100)]
journal: also consider audit fields with '-' valid

6 years agoaudit: improve the audit messages we generate
Lennart Poettering [Mon, 3 Nov 2014 23:47:44 +0000 (00:47 +0100)]
audit: improve the audit messages we generate

always pass along comm, as documented by audit. Always set the correct
comm value.

6 years agojournald: don't pass around SO_TIMESTAMP timestamp for audit, which we don't have...
Lennart Poettering [Mon, 3 Nov 2014 23:32:02 +0000 (00:32 +0100)]
journald: don't pass around SO_TIMESTAMP timestamp for audit, which we don't have anyway

6 years agojournal: when dumping log data with missing COMM fields, show "unknown" instead
Lennart Poettering [Mon, 3 Nov 2014 23:28:33 +0000 (00:28 +0100)]
journal: when dumping log data with missing COMM fields, show "unknown" instead

A small readability improvement...

6 years agojournald: suppress low-level audit text prefix in MESSAGE= field
Lennart Poettering [Mon, 3 Nov 2014 23:27:55 +0000 (00:27 +0100)]
journald: suppress low-level audit text prefix in MESSAGE= field

Let's make the log output more readable, and the header can be
reconstructed in full from the other fields

6 years agojournald: properly decode audit's proctitle= field
Lennart Poettering [Mon, 3 Nov 2014 23:27:26 +0000 (00:27 +0100)]
journald: properly decode audit's proctitle= field

6 years agojournald: enable audit in the kernel when initializing
Lennart Poettering [Mon, 3 Nov 2014 23:01:32 +0000 (00:01 +0100)]
journald: enable audit in the kernel when initializing

Similar to auditd actually turn on auditing as we are starting. This way
we can operate entirely without auditd around.

6 years agojournald: there's no point in turning on SO_TIMESTAMP for audit sockets, audit doesn...
Lennart Poettering [Mon, 3 Nov 2014 22:28:12 +0000 (23:28 +0100)]
journald: there's no point in turning on SO_TIMESTAMP for audit sockets, audit doesn't support timestamps anyway

6 years agoupdate TODO
Lennart Poettering [Mon, 3 Nov 2014 22:10:47 +0000 (23:10 +0100)]
update TODO

6 years agojournald: fix memory leak on error path
Lennart Poettering [Mon, 3 Nov 2014 22:10:34 +0000 (23:10 +0100)]
journald: fix memory leak on error path

6 years agojournald: also check journal file size to deduce if it is empty
Lennart Poettering [Mon, 3 Nov 2014 22:10:21 +0000 (23:10 +0100)]
journald: also check journal file size to deduce if it is empty

6 years agojournalctl: add new --vacuum-size= and --vacuum-time= commands to clean up journal...
Lennart Poettering [Mon, 3 Nov 2014 22:08:33 +0000 (23:08 +0100)]
journalctl: add new --vacuum-size= and --vacuum-time= commands to clean up journal files based on a size/time limit

This is equivalent to the effect of SystemMaxUse= and RetentionSec=,
however can be invoked directly instead of implicitly.

6 years agoman: document audit input for journald
Lennart Poettering [Mon, 3 Nov 2014 21:02:23 +0000 (22:02 +0100)]
man: document audit input for journald

6 years agounits: make ReceiveBuffer= line more readable by using M suffix
Lennart Poettering [Mon, 3 Nov 2014 20:11:49 +0000 (21:11 +0100)]
units: make ReceiveBuffer= line more readable by using M suffix