diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-09-17 21:58:03 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-09-17 21:58:03 +0200 |
commit | faa368e3376cb5e3e3c27550fdde652f1d3c9584 (patch) | |
tree | 5273c0804ce364ebaf5735e8b897397e1b7bd5b9 | |
parent | d4d882e5cefb6b16d84e651a00a9e98914d54bd6 (diff) |
conf-parser: don't unescape parsed configuration strings by default
In many cases this might have a negative effect since we drop escaping
from strings where we better shouldn't have dropped it.
If unescaping makes sense for some settings we can readd it later again,
on a per-case basis.
https://bugs.freedesktop.org/show_bug.cgi?id=54522
-rw-r--r-- | src/core/service.c | 1 | ||||
-rw-r--r-- | src/core/unit.c | 10 | ||||
-rw-r--r-- | src/shared/conf-parser.c | 2 | ||||
-rw-r--r-- | src/shared/util.c | 2 |
4 files changed, 9 insertions, 6 deletions
diff --git a/src/core/service.c b/src/core/service.c index 7b5ff6d1ac..5f7ddfaf14 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -932,7 +932,6 @@ static int service_load_sysv_path(Service *s, const char *path) { s->timeout_stop_usec = DEFAULT_SYSV_TIMEOUT_USEC; } - /* Special setting for all SysV services */ s->type = SERVICE_FORKING; s->remain_after_exit = !s->pid_file; diff --git a/src/core/unit.c b/src/core/unit.c index 3950c43f5e..be0d654bbc 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2675,16 +2675,18 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) { r = manager_load_unit(u->manager, e, NULL, NULL, &device); free(e); - if (r < 0) return r; - if ((r = unit_add_two_dependencies(u, UNIT_AFTER, UNIT_BINDS_TO, device, true)) < 0) + r = unit_add_two_dependencies(u, UNIT_AFTER, UNIT_BINDS_TO, device, true); + if (r < 0) return r; - if (wants) - if ((r = unit_add_dependency(device, UNIT_WANTS, u, false)) < 0) + if (wants) { + r = unit_add_dependency(device, UNIT_WANTS, u, false); + if (r < 0) return r; + } return 0; } diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 68ab80470e..4bf3147f2d 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -593,7 +593,7 @@ int config_parse_string( assert(rvalue); assert(data); - n = cunescape(rvalue); + n = strdup(rvalue); if (!n) return -ENOMEM; diff --git a/src/shared/util.c b/src/shared/util.c index 84f8565e0c..20e5faf34b 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -4097,6 +4097,8 @@ static char *tag_to_udev_node(const char *tagvalue, const char *by) { } char *fstab_node_to_udev_node(const char *p) { + assert(p); + if (startswith(p, "LABEL=")) return tag_to_udev_node(p+6, "label"); |