summaryrefslogtreecommitdiff
path: root/src/shared/util.c
AgeCommit message (Collapse)Author
2015-05-26treewide: fix typosTorstein Husebø
2015-05-21util: introduce PERSONALITY_INVALID as macro for 0xffffffffLULennart Poettering
2015-05-20util: introduce reset_uid_gid() for resetting all uids and gids to 0Lennart Poettering
2015-05-20core,nspawn: unify code that moves the root dirLennart Poettering
2015-05-19bootctl: modernizationZbigniew Jędrzejewski-Szmek
Use strjoina to avoid error handling, and openat to simplify things. Some fixes on the way: - ferror does not set errno, so the return value was wrong in some cases - errors are propagated in more cases - EFI/systemd was created, but EFI/systemd-boot was deleted - something is always printed on error - when checking the version, comparison was done against "systemd-bo" for some reason - return value was converted from negative to EXIT_SUCCESS/EXIT_FAILURE twice, resulting in EXIT_SUCCESS all the time
2015-05-19util: fix typoJan Synacek
2015-05-18util: split all hostname related calls into hostname-util.cLennart Poettering
2015-05-16util: loop_write - accept 0-length messageTom Gundersen
write() can send empty messages, so make sure loop_write() can do the same.
2015-05-14nspawn: allow access to device nodes listed in --bind= and --bind-ro= switchesStefan Junker
https://bugs.freedesktop.org/show_bug.cgi?id=90385
2015-05-13nspawn: skip symlink to a combined cgroup hierarchy if it already existsIago López Galeiras
If a symlink to a combined cgroup hierarchy already exists and points to the right path, skip it. This avoids an error when the cgroups are set manually before calling nspawn.
2015-05-13shared: Use O_EXCL with O_TMPFILE in open_tmpfileCristian Rodríguez
In this usecase, the file will never be materialized with linkat().
2015-05-11util: optimize free_and_strdup() if NOPLennart Poettering
Under the assumption that strcmp() is cheaper than memory allocation, let's avoid the allocation, if the new value is identical to the old.
2015-05-05lockfile-util.[ch]: Split out from util.[ch]Colin Walters
Continuing the general trend of splitting up util.[ch]. I specifically want to reuse this code in https://github.com/GNOME/libglnx and having it split up will make future copy-pasting easier.
2015-05-05util: be a bit safer in path_is_safe()Lennart Poettering
We should be more strict when verifying paths with path_is_safe() for potentially dangerous constructs, and that includes lengths of PATH_MAX-1 and larger. Be more accurate here.
2015-04-30core: rework cgroup path parse logicLennart Poettering
Various cleanups, be stricter when parsing unit paths. Most importantly: return the root slice "-.slice" when asked for slice of paths that contain no slice component.
2015-04-23util: Fix assertion in split() on missing 'Martin Pitt
When parsing a unit with a trailing slash after an escaped line break, like ExecStart=/bin/echo 'foo \ bar' the split() function (through config_parse()) asserted and crashed pid 1: Assertion 'current[*l + 1] == quotechars[0]' failed at ../src/shared/util.c:583, function split(). Aborting. Fix this by returning an error in this case ("trailing garbage"). Add corresponding test case. Also fix the missing "unit" argument of config_parse_exec() in the comment. https://launchpad.net/bugs/1447243
2015-04-22util: make sure fd refers to regular file or directory when applying file ↵Lennart Poettering
attributes Before invoking file system ioctls we need to make sure that the specified fd actually refers to a file system object, and not a device node or similar. Otherwise we might by accident invoke unrelated device driver ioctls. For example, DRM ioctls use the same ioctl numbers as the various file system ioctls.
2015-04-20util: fix typoRaul Gutierrez S
2015-04-11shared: move replace_env* from util to env-utilRonny Chevalier
2015-04-11shared: add terminal-util.[ch]Ronny Chevalier
2015-04-11shared: add random-util.[ch]Ronny Chevalier
2015-04-10shared: add process-util.[ch]Ronny Chevalier
2015-04-10shared: add formats-util.hRonny Chevalier
2015-04-10util: unify how we parse mode_t stringsLennart Poettering
2015-04-10util: remove normalize_env_assignment(), it's unusedLennart Poettering
2015-04-10util: mark unquote() static, so that new code doesn't use this anymoreLennart Poettering
2015-04-10util: fix unicode decoding in unquote_first_word()Lennart Poettering
2015-04-10util: when unescaping C escape sequences support C++11 \u and \U unicode ↵Lennart Poettering
literals We simply recode them in utf8.
2015-04-09util: fix a typo in commentThomas Hindoe Paaboel Andersen
2015-04-09util: cunescape - fix memleak in error pathRonny Chevalier
2015-04-09util: add shell_maybe_quote() call for preparing a string for shell cmdline ↵Lennart Poettering
inclusion If necessary the passed string is enclosed in "", and all special characters escapes. This also ports over usage in bus-util.c and job.c to use this, instead of a incorrect local implementation that forgets to properly escape.
2015-04-08util: merge change_attr_fd() and chattr_fd()Lennart Poettering
2015-04-08remove duplicated includesRonny Chevalier
2015-04-07util: rework cunescape(), improve error handlingLennart Poettering
Change cunescape() to return a normal error code, so that we can distuingish OOM errors from parse errors. This also adds a flags parameter to control whether "relaxed" or normal parsing shall be done. If set no parse failures are generated, and the only reason why cunescape() can fail is OOM.
2015-04-06util: rework rm_rf() logicLennart Poettering
- Move to its own file rm-rf.c - Change parameters into a single flags parameter - Remove "honour sticky" logic, it's unused these days
2015-03-27fix gcc warnings about uninitialized variablesHarald Hoyer
like: src/shared/install.c: In function ‘unit_file_lookup_state’: src/shared/install.c:1861:16: warning: ‘r’ may be used uninitialized in this function [-Wmaybe-uninitialized] return r < 0 ? r : state; ^ src/shared/install.c:1796:13: note: ‘r’ was declared here int r; ^
2015-03-26util: rework word parsing and c unescaping codeLennart Poettering
When parsing words from input files, optionally automatically unescape the passed strings, controllable via a new flags parameter. Make use of this in tmpfiles, and port everything else over, too. This improves parsing quite a bit, since we no longer have to process the same string multiple times with different calls, where an earlier call might corrupt the input for a later call.
2015-03-25fstab-generator: don't accept missing root=, but accept root=noneTobias Hunger
And other non-device entries (like fstab does). Mount whatever the user asked to be mounted on / on the kernel command line. Do less sanity check and do *not* bail out when the mount device looks strange or does not exist. This basically makes the changes for deviceless filesystems from yesterday unnecessary and is in line with what we do for filesystems set up in fstab. Remove some code that is now dead (reverting fb02a2775a65 and b0438462). [tomegun: - change patch title/description a bit. - don't touch the /usr logic, that would be a separate change and we don't currently have a convincing use-case for that. - don't bail out on /sys ro. This only makes sense in containers, where we would not be doing this anyway. If there is a use-case we could consider that as a separate patch.]
2015-03-24fstab-generator: Support root on tmpfs (or other deviceless FS)Tobias Hunger
This allows for stateless systems.
2015-03-19Add change_attr_fd()Goffredo Baroncelli
Add change_attr_fd() function to modify the file/directory attribute.
2015-03-16shared - reinstate plymouth_running()Tom Gundersen
This will be used by fsckd. This reverts part of 031886edfc6e96ab778c241035a8d00fb0de99d3.
2015-03-16core: Remove explicit Plymouth integrationJasper St. Pierre
Even if plymouth is running, it might have not displayed the splash yet, so we'll see a few lines on fbcon when we should have otherwise had nothing. Plymouth integration was added to systemd in commit 6faa11140bf776cdaeb8d22d01816e6e48296971. That same day, Plymouth got systemd integration [0]. As such, the Plymouth integration has always been obsolete, and was probably only for older Plymouth's. But I can't imagine anybody running a Plymouth from 2011 with a systemd from 2015. Remove the Plymouth/systemd integration, and let Plymouth's code tell systemd to print the details. [0] http://cgit.freedesktop.org/plymouth/commit/?id=537c16422cd49f1beeaab1ad39846a00018faec1 Signed-off-by: Jasper St. Pierre <jstpierre@mecheye.net> Cc: Daniel Drake <dsd@endlessm.com> Cc: Ray Strode <rstrode@redhat.com>
2015-03-15util: check asprintf return valueZbigniew Jędrzejewski-Szmek
CID #1237546.
2015-03-14util: remove redundant debug messageZbigniew Jędrzejewski-Szmek
mar 14 20:05:34 fedora22 systemd[4058]: /usr/lib/systemd/system-generators/kdump-dep-generator.sh will be executed. mar 14 20:05:34 fedora22 systemd[4058]: Spawned /usr/lib/systemd/system-generators/kdump-dep-generator.sh as 4059. The second line already says everything.
2015-03-13Check that EWOULDBLOCK is the same as EAGAINZbigniew Jędrzejewski-Szmek
It certainly is everywhere on Linux, but as a courtesy to people doing some strange cross-compilation, check that the assumption holds.
2015-03-13tree-wide: there is no ENOTSUP on linuxDavid Herrmann
Replace ENOTSUP by EOPNOTSUPP as this is what linux actually uses.
2015-03-10util: add rename_noreplaceAlban Crequy
renameat2() exists since Linux 3.15 but btrfs support for the flag RENAME_NOREPLACE was added later. This patch implements a fallback when renameat2() returns EINVAL. EINVAL is the error returned when the filesystem does not support one of the flags.
2015-03-10Add type specifier for intThomas Hindoe Paaboel Andersen
2015-03-09Introduce loop_read_exact helperZbigniew Jędrzejewski-Szmek
Usually when using loop_read(), we want to read the full buffer. Add a helper that mirrors loop_write(), and returns 0 when full buffer was read, and an error otherwise. Use -ENODATA for the short read, to distinguish it from a read error.
2015-03-03shared/util: assume ac when /sys/class/power_supply is missingZbigniew Jędrzejewski-Szmek
On s390 (at least) /sys/class/power_supply is not present. We should treat this like if this directory was empty, and not an error.