diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 94a5a30f92..915f5680ea 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -1060,7 +1060,7 @@ specified, see systemd.time5. The default is infinity (job timeouts disabled), except for device units where - JobRunningTimeoutSec= defaults to DefaultTimeoutStartSec=. + JobRunningTimeoutSec= defaults to DefaultDeviceTimeoutSec=. Note: these timeouts are independent from any unit-specific timeouts (for example, the timeout diff --git a/src/hibernate-resume/hibernate-resume-generator.c b/src/hibernate-resume/hibernate-resume-generator.c index 68916628ed..fcd2889238 100644 --- a/src/hibernate-resume/hibernate-resume-generator.c +++ b/src/hibernate-resume/hibernate-resume-generator.c @@ -11,6 +11,7 @@ #include "device-nodes.h" #include "dropin.h" #include "efivars.h" +#include "escape.h" #include "fd-util.h" #include "fileio.h" #include "fstab-util.h" @@ -196,7 +197,7 @@ static int parse_efi_hibernate_location(void) { } static int process_resume(void) { - _cleanup_free_ char *device_unit = NULL; + _cleanup_free_ char *device_unit = NULL, *device_escaped = NULL; _cleanup_fclose_ FILE *f = NULL; int r; @@ -214,6 +215,10 @@ static int process_resume(void) { if (r < 0) log_warning_errno(r, "Failed to write device timeout drop-in, ignoring: %m"); + device_escaped = cescape(arg_resume_device); + if (!device_escaped) + return log_oom(); + r = generator_open_unit_file(arg_dest, NULL, SPECIAL_HIBERNATE_RESUME_SERVICE, &f); if (r < 0) return r; @@ -233,7 +238,7 @@ static int process_resume(void) { "Type=oneshot\n" "ExecStart=" LIBEXECDIR "/systemd-hibernate-resume %2$s %3$" PRIu64 "\n", device_unit, - arg_resume_device, + device_escaped, arg_resume_offset); r = fflush_and_check(f);