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);