summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-09-17 21:58:03 +0200
committerLennart Poettering <lennart@poettering.net>2012-09-17 21:58:03 +0200
commitfaa368e3376cb5e3e3c27550fdde652f1d3c9584 (patch)
tree5273c0804ce364ebaf5735e8b897397e1b7bd5b9
parentd4d882e5cefb6b16d84e651a00a9e98914d54bd6 (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.c1
-rw-r--r--src/core/unit.c10
-rw-r--r--src/shared/conf-parser.c2
-rw-r--r--src/shared/util.c2
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");