From 98dc9d1f8f02ef968140a2d55ed91528e1ef8056 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 17 Jun 2019 11:31:06 +0200 Subject: [PATCH] sleep: properly pass verb to sleep script Another fall-out from our rewriting of argv[] now. Fixes: #12782 --- src/sleep/sleep.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index 11757f2efae..c38aa4ccf67 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -35,6 +35,8 @@ static char* arg_verb = NULL; +STATIC_DESTRUCTOR_REGISTER(arg_verb, freep); + static int write_hibernate_location_info(void) { _cleanup_free_ char *device = NULL, *type = NULL; _cleanup_free_ struct fiemap *fiemap = NULL; @@ -317,7 +319,9 @@ static int parse_argv(int argc, char *argv[]) { "Usage: %s COMMAND", program_invocation_short_name); - arg_verb = argv[optind]; + arg_verb = strdup(argv[optind]); + if (!arg_verb) + return log_oom(); if (!STR_IN_SET(arg_verb, "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate")) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), -- 2.39.2