Commit Graph
2712 Commits
Author SHA1 Message Date
Lennart Poettering 45071fcaa0 memfd: always create our memfds with CLOEXEC set
We really shouldn't create fds ever that have the flag unset.
2014-10-30 16:23:34 +01:00
Lennart Poettering 1f70b0876a busctl: add new "capture" verb to record bus messages in libpcap compatible files, for dissection with wireshark 2014-10-30 01:13:54 +01:00
Lennart Poettering ef7b6c0190 sd-bus: properly handle removals of non-existing matches 2014-10-29 17:58:43 +01:00
Susant Sahani d0159fdc7a sd-rtnl: add bridge port rtnl attributes.
Add bridge port attributes to sd-rtnl to configure
via networkd.
2014-10-29 10:59:59 +01:00
Susant Sahani 64c8407133 sd-rtnl: add support to set packet family type
This patch adds functionality to set family type
in the rtnl message for example PF_BRIDGE.
2014-10-29 10:59:46 +01:00
Tom Gundersen fcf81a54a4 sd-rtnl: mark nested attributes with the NLA_F_NESTED flag
The kernel mostly does not check this, but let's be consisntent and allways set it anyway. Based
on patch from Susant Sahani.
2014-10-29 10:52:07 +01:00
Tom Gundersen 0a2478a918 sd-rtnl: fix reading of nla type
We must filter out the 'network-byteorder' and 'nested' flags.
2014-10-29 10:51:07 +01:00
Lennart Poettering f2288cc63f polkit: actually generate new InteractiveAuthorizationRequired error on the right occasions 2014-10-28 15:11:39 +01:00
Lennart Poettering 1b3a797f6f sd-bus: add support for new InteractiveAuthorizationRequired error from dbus spec 2014-10-28 14:59:48 +01:00
Daniel Mack 5ebe2ce782 sd-bus: sync kdbus.h (ABI break)
Some comment fixes and header cleanups in kdbus.h, and the task capability
meta information has been factored out to its own struct.
2014-10-27 17:02:31 +01:00
Lennart Poettering 24f6fc22c1 sd-bus: explicitly cast asprintf() return value away we are not interested in
Let's give coverity a hint what's going on here.
2014-10-27 13:06:20 +01:00
Lennart Poettering 54ad51e3e9 Revert "sd-bus: check return value of asprintf()"
This reverts commit b1543c4c93.

We check b->address anyway, no need to check the return value,
especially given that the other #ifdef branch don't get the same
treatment.
2014-10-27 13:04:17 +01:00
Lennart Poettering 455cd8b137 sd-bus: if we don't manage to properly allocate the error message for an sd_bus_error, just go on
sd_bus_error_setfv() must initialize the sd_bus_error value to some
sensible value and then return a good errno code matching that. If it
cannot work at all it should set the error statically to the OOM error.
But if it can work half-way (i.e. initialize the name, but not the
message) it should do so and still return the correct errno number for
it.

This effectively reverts 8bf13eb1e0
2014-10-24 19:24:53 +02:00
Michal Schmidt c9fe4af70d sd-bus: make sd_bus::reply_callbacks a OrderedHashmap
The way process_closing() picks the first entry from reply_callbacks
and works with it makes it likely that it cares about the order.
2014-10-23 17:38:02 +02:00
Zbigniew Jędrzejewski-Szmek a9becdd65b sd-daemon,man: ignore missing $WATCHDOG_PID
Systemd 209 started setting $WATCHDOG_PID, and sd-daemon watch was
modified to check for this variable. This means that
sd_watchdog_enabled() stopped working with previous versions of
systemd. But sd-event is a public library and API and we must keep it
working even when a program compiled with a newer version of the
libary is used on a system running an older version of the manager.

getenv() and unsetenv() are fairly expensive calls, so optimize
sd_watchdog_enabled() by not calling them when unnecessary.

man: centralize the description of $WATCHDOG_PID and $WATCHDOG_USEC in
the sd_watchdog_enabled manpage. It is better not to repeat the same
stuff in two places.
2014-10-23 00:17:18 -04:00
Lennart Poettering affcf18915 machine: validate machine names using machine_name_is_valid() instead of string_is_safe()
After all, we know have this as generic validator, so let's be correct
and use it wherver applicable.
2014-10-22 23:22:47 +02:00
Daniel Mack 505e77caa5 sd-bus: fix transition left-overs in sd_bus_get_owner_creds()
sd_bus_get_owner_creds() was only halfly ported over to
_cleanup_bus_creds_unref_.
2014-10-22 22:06:53 +02:00
Daniel Mack 8f44e3ea3e sd-bus: implement sd_bus_get_owner_creds() for kdbus
kdbus learned a new ioctl to tell userspace about a bus creator's
credentials, which is what we need to implement sd_bus_get_owner_creds() for
kdbus.

Move the function from sd-bus.c to bus-control.c to be able to reuse
the bus_populate_creds_from_items() helper.
2014-10-22 19:45:07 +02:00
Daniel Mack 056f95d0a7 sd-bus: rename sd_bus_get_owner_uid(), sd_bus_get_owner_machine_id() and sd_bus_get_peer_creds()
Clean up the function namespace by renaming the following:

  sd_bus_get_owner_uid()        → sd_bus_get_name_creds_uid()
  sd_bus_get_owner_machine_id() → sd_bus_get_name_machine_id()
  sd_bus_get_peer_creds()       → sd_bus_get_owner_creds()
2014-10-22 19:45:07 +02:00
Daniel Mack 370d7a9c0f sd-bus: factor out creds item iterator
We will re-use the code to walk items in order to populate a creds object,
so let's factor it out first.
2014-10-22 19:45:07 +02:00
Daniel Mack a1783d61a8 sd-bus: sync kdbus.h
kdbus learned a new command to query a bus creator's credentials. Sync
kdbus.h first, which also renames some struct to more generic terms.
That is, however, not an ABI break this time.
2014-10-22 19:45:07 +02:00
Daniel Mack b680a194bf sd-bus: assert clock_gettime()'s return value
Don't handle clock_gettime() errors gracefully but use assert_se().
2014-10-22 13:39:51 +02:00
Daniel Mack 03785ad0e5 sd-bus: sync kdbus.h (API change: switch to absolute timeouts)
kdbus_msg.timeout_ns now takes an absolute value, based on CLOCK_MONOTONIC,
in order to eventually support automatically restarted syscalls.

Signed-off-by: Daniel Mack <daniel@zonque.org>
2014-10-21 22:14:03 +02:00
Daniel Mack bc75205c77 sd-bus: sync kdbus.h (ABI break)
In kdbus.h, the following details changed:

 * All commands gained a 'kernel_flags' field to report the flags supported
   by the driver. Before, this was done in the 'flags' field in a
   bidirectional way, which turned out to be a problem for the code in
   sd-bus, as many parts of it reuse the same ioctl struct more than once
   and consider them to be owned by userspace.

 * Name listings are now returned by a new struct instead of reusing struct
   kdbus_cmd_name for that matter. This way, we don't add more unneeded
   fields to it and make the API cleaner.

 * 'conn_flags' was renamed to 'flags' in struct kdbus_cmd_hello to make
   the API a bit more unified.
2014-10-21 19:19:44 +02:00
Lukasz Skalski 659b937e67 kdbus: free returned buffer when the memory is no longer needed 2014-10-20 20:09:05 +02:00
Daniel Mack a2243d5488 sd-bus: sync kdbus.h (ABI break)
kdbus.h now has KDBUS_ATTACH_COMM split into KDBUS_ATTACH_TID_COMM and
KDBUS_ATTACH_PID_COMM. The items were split already, so the change in
systemd is easy.
2014-10-20 15:26:00 +02:00
Daniel Mack 4a3e79e1b6 sd-bus: sync kdbus.h (ABI break)
In kdbus.h, the 'features' field has been dropped again. Instead of
negotiating features that way, we decided to make the kernel return the
set of supported flags in each ioctl struct's .flags field, in both the
success and error cases.
2014-10-18 20:57:53 +02:00
Kay Sievers c32195e057 Revert "sd-bus: sync kdbus.h (ABI break)"
This reverts commit 1a2409e262.

Support from the kdbus interface was removed. We require
memfds to be supported by all clients.
2014-10-17 10:12:44 +02:00
Daniel Mack 1a2409e262 sd-bus: sync kdbus.h (ABI break)
kdbus learned KDBUS_HELLO_ACCEPT_MEMFD as new connection negotiation
flag. Set it by default in systemd for now.
2014-10-14 20:03:06 +02:00
Lennart Poettering b911eb1560 bus: check allow-interactive-auhtorization flag when doing polkit 2014-10-13 17:19:31 +02:00
Lennart Poettering 53a83f4bc0 sd-bus: add support for new allow-interactive-authorization message header flag 2014-10-13 17:19:31 +02:00
Zbigniew Jędrzejewski-Szmek 8d1d1bf20a tests: fix some tests to pass in koji
FAIL: test-engine
=================
Cannot find cgroup mount point: No such file or directory
Assertion 'r >= 0' failed at ../src/test/test-engine.c:46, function main(). Aborting.

FAIL: test-sched-prio
=====================
Cannot find cgroup mount point: No such file or directory
Assertion 'r >= 0' failed at ../src/test/test-sched-prio.c:42, function main(). Aborting.

FAIL: test-bus-cleanup
======================
Assertion 'sd_bus_open_system(&bus) >= 0' failed at ../src/libsystemd/sd-bus/test-bus-cleanup.c:40, function test_bus_open(). Aborting.
after new: refcount 1
2014-10-12 17:31:02 -04:00
Lukasz Skalski 82279e6966 kdbus: fix buffer overflow in bus_get_owner_kdbus() function
Commit 710fc9779b7c (kdbus repo) introduced attaching items[]
instead of name[] in kdbus_cmd_conn_info struct. Commit 581fe6c81
(systemd repo) caught up with this change, but item size was not
properly calculated.
2014-10-10 12:44:31 +02:00
Daniel Mack b1543c4c93 sd-bus: check return value of asprintf()
Check for OOM conditions of asprintf() in bus_set_address_user().
2014-10-09 11:26:09 +02:00
Zbigniew Jędrzejewski-Szmek f95387cda8 sd-event: also update signal mask when disconnecting sources 2014-10-08 19:30:22 -04:00
Zbigniew Jędrzejewski-Szmek 4807d2d068 sd-event: be more careful when enabling/disabling signals
When a child event is disabled (in order to be freed) and there is no
SIGCHLD signal event, sd_event_source_set_enabled will disable SIGCHLD
even if there are other child events.

Also remove some unneeded signalfd updates.

https://bugs.freedesktop.org/show_bug.cgi?id=84659

Based-on-a-patch-by: Hristo Venev <mustrumr97@gmail.com>
2014-10-08 19:30:22 -04:00
Daniel Mack 40885bb29e sd-bus: sync kdbus.h (ABI break)
Sync kdbus.h once again. Two thing have changed:

 a) KDBUS_CMD_EP_* was renamed to KDBUS_CMD_ENDPOINT_*
 b) struct kdbus_cmd_hello and struct kdbus_cmd_make gained a
    'features' bitfield (which is currently unused)
2014-10-08 17:30:49 +02:00
Daniel Mack 8bf13eb1e0 sd-bus: check return value of vasprintf
Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv().

Spotted by coverity.
2014-10-07 12:10:06 +02:00
Daniel Mack 53e9dbcdfb sd-bus: fix KDBUS_CMD_FREE user
Fix a user of the KDBUS_CMD_FREE ioctl that was missed in the transition.
2014-10-07 12:02:04 +02:00
Daniel Mack ca794c8e95 sd-bus: fix use-after-free in close_kdbus_msg()
Walk the items first, then free the memory of the message.

Also, while at it, make coverity happy with an explicit (void) prefix.
We intentionally ignore the return value here.
2014-10-07 11:38:31 +02:00
Thomas Hindoe Paaboel Andersen 13303f018d sd-bus: remove unused variable
It is no longer used after d663f1b1a9
2014-10-07 00:00:21 +02:00
Daniel Mack d663f1b1a9 sd-bus: sync kdbus.h (ABI break)
The KDBUS_CMD_FREE ioctl now uses a struct rather than a direct pointer
to the offset to free.

The KDBUS_CMD_MSG_CANCEL ioctl has also changes, but there's no user of
it yet in systemd.
2014-10-06 18:36:16 +02:00
Zbigniew Jędrzejewski-Szmek 75a0da952f bus: add assert to check that we're not freeing a static structure
CID #996315.
2014-10-05 15:29:41 -04:00
Zbigniew Jędrzejewski-Szmek cef3566998 sd-id128: do stricter checking of random boot id
If we are bothering to check whether the kernel is not feeding us
bad data, we might as well do it properly.

CID #1237692.
2014-10-03 20:57:30 -04:00
Zbigniew Jędrzejewski-Szmek 125dd07483 sd-bus: split out cleanup into separate function
m is always non-null at this point. This function is too long anyway.
2014-10-03 20:42:09 -04:00
Zbigniew Jędrzejewski-Szmek 7057bd9931 sd-event: check the value of received signal
Appease coverity report #1237775.

Also rename ss to n, to make it visually different from ss.
2014-10-03 20:42:09 -04:00
Lennart Poettering 2c652b6bfe kdbus: don't clobber return values, use strjoin() instead of asprintf(), keep function invocations and variable declarations separate 2014-10-02 20:38:00 +02:00
Lennart Poettering 8e00bfc234 kdbus: make sure we never invoke free() on an uninitialized pointer on OOM 2014-10-02 20:38:00 +02:00
Daniel Mack 995a1063db sd-bus: sync kdbus.h (ABI break!)
struct kdbus_cmd_match got a flags field, which systemd currently makes no
use of.
2014-10-02 17:15:39 +02:00
Daniel Mack 581fe6c817 sd-bus: sync kdbus.h (ABI break)
struct kdbus_cmd_conn_info takes a list of items now instead of a string.

Fix the only user in SD of that ioctl.
2014-10-02 13:04:04 +02:00