summaryrefslogtreecommitdiff
path: root/src/core/mount.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-04-06 20:11:41 +0200
committerLennart Poettering <lennart@poettering.net>2015-04-07 15:42:25 +0200
commit527b7a421ff3927d4f3f170b1b143452e88ae1dc (patch)
treecfb13e123c6dfd547fb005db63a480ca709b46da /src/core/mount.c
parent64f75d7a2898e0c0d2b66f93ddd34ffd345bb3c5 (diff)
util: rework cunescape(), improve error handling
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.
Diffstat (limited to 'src/core/mount.c')
-rw-r--r--src/core/mount.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index 53594cd40b..c4aa810d05 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -1579,7 +1579,7 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) {
r = 0;
for (;;) {
const char *device, *path, *options, *fstype;
- _cleanup_free_ const char *d = NULL, *p = NULL;
+ _cleanup_free_ char *d = NULL, *p = NULL;
struct libmnt_fs *fs;
int k;
@@ -1594,12 +1594,10 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) {
options = mnt_fs_get_options(fs);
fstype = mnt_fs_get_fstype(fs);
- d = cunescape(device);
- if (!d)
+ if (cunescape(device, UNESCAPE_RELAX, &d) < 0)
return log_oom();
- p = cunescape(path);
- if (!p)
+ if (cunescape(path, UNESCAPE_RELAX, &p) < 0)
return log_oom();
(void) device_found_node(m, d, true, DEVICE_FOUND_MOUNT, set_flags);