mirror of
https://github.com/systemd/systemd
synced 2024-07-23 19:25:39 +00:00
hibernate-resume: refuse resume if resume_offset= is set but not resume=
This commit is contained in:
parent
906682a1de
commit
c089af84c4
|
@ -32,6 +32,7 @@ static char *arg_resume_options = NULL;
|
|||
static char *arg_root_options = NULL;
|
||||
static bool arg_noresume = false;
|
||||
static uint64_t arg_resume_offset = 0;
|
||||
static bool arg_resume_offset_set = false;
|
||||
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_resume_device, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_resume_options, freep);
|
||||
|
@ -73,6 +74,8 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
|
|||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to parse resume_offset=%s: %m", value);
|
||||
|
||||
arg_resume_offset_set = true;
|
||||
|
||||
} else if (proc_cmdline_key_streq(key, "resumeflags")) {
|
||||
|
||||
if (proc_cmdline_value_missing(key, value))
|
||||
|
@ -263,6 +266,11 @@ static int run(const char *dest, const char *dest_early, const char *dest_late)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (!arg_resume_device && arg_resume_offset_set)
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"Found resume_offset=%" PRIu64 " but resume= is unset, refusing.",
|
||||
arg_resume_offset);
|
||||
|
||||
r = parse_efi_hibernate_location();
|
||||
if (r == -ENOMEM)
|
||||
return r;
|
||||
|
|
Loading…
Reference in a new issue