From faa368e3376cb5e3e3c27550fdde652f1d3c9584 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 17 Sep 2012 21:58:03 +0200 Subject: [PATCH] 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 --- src/core/service.c | 1 - src/core/unit.c | 10 ++++++---- src/shared/conf-parser.c | 2 +- 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 7b5ff6d1a..5f7ddfaf1 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 3950c43f5..be0d654bb 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 68ab80470..4bf3147f2 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 84f8565e0..20e5faf34 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"); -- 2.30.2