|
Zbigniew Jędrzejewski-Szmek |
436654 |
From 413b9df4a84291dfeb28133f4b30790b7ad9f903 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
From: Andrei Borzenkov <arvidjaar@gmail.com>
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
Date: Wed, 3 Jun 2015 20:50:59 +0300
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
Subject: [PATCH] fstab-generator: cescape device name in root-fsck service
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
We unescape ExecStart line when parsing it, so escape device name
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
before adding it to unit file.
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
fixes #50
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
(cherry picked from commit fa05e97257fc54b05e4c272dfc19cea46511b823)
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
src/shared/generator.c | 10 ++++++++--
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
diff --git a/src/shared/generator.c b/src/shared/generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
index 807569a1b8..e58bbea77c 100644
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
--- a/src/shared/generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+++ b/src/shared/generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
@@ -34,9 +34,14 @@
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
static int write_fsck_sysroot_service(const char *dir, const char *what) {
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
const char *unit;
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
_cleanup_free_ char *device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ _cleanup_free_ char *escaped;
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
_cleanup_fclose_ FILE *f = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
int r;
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ escaped = cescape(what);
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ if (!escaped)
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
unit = strjoina(dir, "/systemd-fsck-root.service");
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
log_debug("Creating %s", unit);
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
@@ -61,11 +66,12 @@ static int write_fsck_sysroot_service(const char *dir, const char *what) {
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
"[Service]\n"
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
"Type=oneshot\n"
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
"RemainAfterExit=yes\n"
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
- "ExecStart=" SYSTEMD_FSCK_PATH " %2$s\n"
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ "ExecStart=" SYSTEMD_FSCK_PATH " %4$s\n"
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
"TimeoutSec=0\n",
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
program_invocation_short_name,
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
what,
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
- device);
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ device,
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
+ escaped);
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
r = fflush_and_check(f);
|
|
Zbigniew Jędrzejewski-Szmek |
436654 |
if (r < 0)
|