summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-01-05journald: add some additional checks before we divide by values read from ↵Lennart Poettering
journal file headers Since the file headers might be replaced by zeroed pages now due to sigbus we should make sure we don't end up dividing by zero because we don't check values read from journal file headers for changes.
2015-01-05journalctl: static variables immediately configured via command line ↵Lennart Poettering
arguments should be prefixed with "arg_"
2015-01-05journal: install sigbus handler for journal tools tooLennart Poettering
This makes them robust regarding truncation. Ideally, we'd export this as an API, but given how messy SIGBUS handling is, and the uncertain ownership logic of signal handlers we should not do this (unless libc one day invents a scheme how to sanely install SIGBUS handlers for specific memory areas only). However, for now we can still make all our own tools robust. Note that external tools will only have read-access to the journal anyway, where SIGBUS is much more unlikely, given that only writes are subject to disk full problems.
2015-01-05systemctl: fix waiting for jobs when using direct connections to PID 1 for dbusLennart Poettering
2015-01-05journald: constify all thingsLennart Poettering
2015-01-05machined,bus-proxy: fix connecting to containersLennart Poettering
2015-01-05journald: prefix exported calls with "server_", unexport unnecessary callsLennart Poettering
2015-01-05journald: process SIGBUS for the memory maps we set upLennart Poettering
Even though we use fallocate() it appears that file systems like btrfs will trigger SIGBUS on certain low-disk-space situation. We should handle that, hence catch the signal, add it to a list of invalidated pages, and replace the page with an empty memory area. After each write check if SIGBUS was triggered, and consider the write invalid if it was. This should make journald a lot more robust with file systems where fallocate() is not reliable, for example all CoW file systems (btrfs...), where changing written data can fail with disk full errors. https://bugzilla.redhat.com/show_bug.cgi?id=1045810
2015-01-05nspawn: mount most of the cgroup tree read-only in nspawn containers except ↵Lennart Poettering
for the container's own subtree in the name=systemd hierarchy More specifically mount all other hierarchies in their entirety and the name=systemd above the container's subtree read-only.
2015-01-05cgroup: downgrade log messages when we cannot write to cgroup trees that are ↵Lennart Poettering
mounted read-only
2015-01-02machinectl: Check type instead of path before printing the typeThomas Hindoe Paaboel Andersen
Looks like a typo when introduced in fefdc04b38725457a91651218feb7000f6ccc1f4
2015-01-01mount: do not use -n when running in --user modeZbigniew Jędrzejewski-Szmek
-n is only allowed for root. /etc/mtab is nowadays almost always a link to /proc/, so in practice this does not really matter too much, but should allow .mount units to work in --user mode. https://bugs.freedesktop.org/show_bug.cgi?id=87602
2015-01-01Type of mount(2) flags is unsigned longTopi Miettinen
2015-01-01udev: improve help/usage for some more programsRobert Milasan
2015-01-01networkctl: avoid potential use of unitialized variablesZbigniew Jędrzejewski-Szmek
Those values are based on a file we read from disk, so we should verify everything we receive, and make sure everything we print is sensible. Also, print fractional seconds for TTL.
2015-01-01networkctl: remove unused variableZbigniew Jędrzejewski-Szmek
2015-01-01network: fix scanf/printf formatZbigniew Jędrzejewski-Szmek
usec_t is defined as 64 bit wide, but long is 32 bit on many archs.
2015-01-01missing: add __NR_renameat2Zbigniew Jędrzejewski-Szmek
2015-01-01Remove "to allow" from policy messagesZbigniew Jędrzejewski-Szmek
It carries no additional information and forces a passive sentence structure which is longer and harder to parse.
2015-01-01machined: fix grammar in org.freedesktop.machine1.policy.inPiotr Drąg
[zj: change "in into" to "into".] https://bugs.freedesktop.org/show_bug.cgi?id=87722
2014-12-31lldp: fix sd_lldp_save()David Herrmann
Fix a bunch of needless memzero() calls, a bunch of use-after-free regarding _cleanup_free_ and drop unused variables. Hint: Do NOT use _cleanup_free_ for temporary strappend() helpers that are freed multiple times. All you safe is the last free() call, which is really not worth the trouble resetting it to NULL all the time.
2014-12-31lldp: fix uninitialized cleanup var #2David Herrmann
Another uninitialized variable marked as _cleanup_. Set it to NULL to avoid accessing uninitialized memory.
2014-12-31lldp: fix uninitialized cleanup varDavid Herrmann
Make sure to set _cleanup_ variables to NULL. Otherwise, we free uninitialized objects.
2014-12-31import: fix mem-leak in CurlGlueDavid Herrmann
Make sure to actually free the underlying object in CurlGlue unref.
2014-12-31lldp: fix double freeDavid Herrmann
'k' is marked as _cleanup_free_ so reset it to NULL if we free it explicitly.
2014-12-31networkctl: fix strappend() error checkingDavid Herrmann
Make sure to test the right variable for NULL.
2014-12-31network: add malloc-assertion in testDavid Herrmann
Make sure malloc() really returns non-NULL in lldp test.
2014-12-31machinectl: remove dead codeDavid Herrmann
'r' is not touched after the previous error-checking 100 lines above. Drop that code.
2014-12-31Revert commit f131770b "tree-wide: spelling fixes"David Herrmann
This partially reverts: commit f131770b1465fbf423881f16ba85523a05f846fe Author: Veres Lajos <vlajos@gmail.com> Date: Mon Dec 29 09:45:58 2014 +0000 tree-wide: spelling fixes The commit in question changed a binary file. I didn't look at the diff in particular, so I have no idea what exactly was changed. However, the file is generated and it looked highly suspiciuous. Therefore, I reverted that part. Note that this is generated by "make update-unifont" so really no reason to touch at all.
2014-12-30tree-wide: spelling fixesVeres Lajos
https://github.com/vlajos/misspell_fixer https://github.com/torstehu/systemd/commit/b6fdeb618cf2f3ce1645b3315f15f482710c7ffa Thanks to Torstein Husebo <torstein@huseboe.net>.
2014-12-30accelerometer: display short options tooRobert Milasan
2014-12-30systemctl: do not repeat hibernate/sleep attemptsZbigniew Jędrzejewski-Szmek
If some sleep operation was not possible (e.g. because swap is missing), we would try twice: once through logind, which would result in a clean error: Failed to execute operation: Sleep verb not supported and then second time by starting the appropriate unit directly, which is more messy. If logind tells us that something is not possible (or already in progress), report that to the user and quit. If logind is present and working we should not try to work around it. Loosely based on https://bugs.freedesktop.org/show_bug.cgi?id=87832.
2014-12-30bus: replace ENOSYS return codes with EBADR/ENOTSUPZbigniew Jędrzejewski-Szmek
ENOSYS is used to signify compiled-out functionality. Using it for different kinds of error is misleading. For BUS_ERROR_SLEEP_VERB_NOT_SUPPORTED, logind-action.c uses ENOTSUP already, so changing it to ENOTSUP makes the dbus and action paths behave the same.
2014-12-30accelerometer: drop unused -x optionRobert Milasan
2014-12-30bus: add sd_bus_emit_object_{added/removed}()David Herrmann
This implements two new helpers, discussed on systemd-devel about 1 year ago: sd_bus_emit_object_added() sd_bus_emit_object_removed() Both calls are equivalent to their respective counterpart sd_bus_emit_interfaces_{added/removed}(), but can figure out the list of interfaces themselves, instead of requiring the caller to provide them. Furthermore, both calls properly deal with builtin interfaces provided via org.freedesktop.DBus.* and alike. Both calls simply traverse a node and all its parent nodes to figure out a list of all interfaces registered as vtable or fallback. It then appends each of them, similar to the interfaces_{added/removed}() helpers. Note that interfaces_{added/removed}() runs a parent traversal for *each* passed interface. Therefore, it can simply bail out, once it found a parent node that implements a given interface. With object_{added/removed}() we cannot know the registered interfaces in advance, thus, we cannot run one traversal per node. Instead, we run a single traversal and remember all interfaces that we added. Therefore, a child-interface overrides all conflicting parent-interfaces. We keep a "Set *s" context to track those while climbing up the tree.
2014-12-30bus: fix capabilities on big-endianDavid Herrmann
The kernel provides capabilities as a u32 array, sd-bus uses an u8 array. This works fine on little-endian as both are encoded the same way. However, this fails on big-endian if we do not perform sufficient byte-swapping on each u32 entry. This patch makes sd-bus use u32, too. We avoid changing any kernel provided data so we can keep pointing into kdbus pool buffers which contain u32 arrays.
2014-12-30bus: drop creds->capability_sizeDavid Herrmann
The number of available caps can be read from /proc/sys/kernel/cap_last_cap during runtime. Our helper cap_last_cap() does that, so there's no reason to remember the size of any capability cache. We can just pre-allocate arrays with a suitable size for all available caps and reject any higher caps. The kernel capability API uses u32 as base so make sure we do the same. Note that this is specified by POSIX, so it's unlikely to change.
2014-12-30macro: add DIV_ROUND_UP()David Herrmann
This macro calculates A / B but rounds up instead of down. We explicitly do *NOT* use: (A + B - 1) / A as it suffers from an integer overflow, even though the passed values are properly tested against overflow. Our test-cases show this behavior. Instead, we use: A / B + !!(A % B) Note that on "Real CPUs" this does *NOT* result in two divisions. Instead, instructions like idivl@x86 provide both, the quotient and the remainder. Therefore, both algorithms should perform equally well (I didn't verify this, though).
2014-12-29Revert "machined: don't force terminate registered machines"Lennart Poettering
This reverts commit 206e7a5f7b55ac61188efd895e65ab26e478cbb2. We actually want to allow shutting down containers that use RegisterMachine() rather than CreateMachine() to register their own unit. It should be safe to do so, since the primary usecase for RegisterMachine() are container managers that run only a single container within their own unit, such as systemd-nspawn.
2014-12-29machined: ignore spurious errorLennart Poettering
2014-12-29nspawn: report back to systemd only very late whether we are OKLennart Poettering
That way, systemd can actually figure out if everything is OK with nspawn.
2014-12-29machinectl: add "enable" and "disable" verbs for enabling/disabling ↵Lennart Poettering
systemd-nspawn for containers This is basically just a shortcut for "systemctl enable systemd-nspawn@<foobar>.service", but does escaping.
2014-12-29machinectl: add new "start" verb to start a container as a service in nspawnLennart Poettering
2014-12-29bus-proxy: fix sd_bus_reply_*() usageDavid Herrmann
We *must* not use sd_bus_reply_*() as it does not set the sender field correctly. Use the synthetic_reply_*() helpers instead!
2014-12-29capability: use /proc/sys/kernel/cap_last_capDavid Herrmann
This file was introduced with linux-3.2, use it instead of probing for it via prctl(PR_CAPBSET_READ). For now, keep the old code for backwards compat. We can drop it once 3.2 is our lowest requirement. The test-cap-list code is extended to verify cap_last_cap() is the same as we'd get via prctl probing and /proc.
2014-12-29core: loopback - correctly fail the loopback_check if somehow the rtnl calls ↵Tom Gundersen
fail
2014-12-29bus: fix typoDavid Herrmann
Drop spurious 'we'.
2014-12-29rtnl: recv_message - don't enforce sender uidTom Gundersen
All we care about is that the kernel (pid==0) sent the message. Verifying the sender uid seems to break when using userns. Reported by Stéphane Graber.
2014-12-29test: loopback - parse logging env varTom Gundersen
2014-12-29sd-rtnl: rtnl_call - don't dispatch wqueue after timeout has passedTom Gundersen
Only a minor change as the timeout would be hit soon thereafetr at the next loop.