From: Lennart Poettering Date: Mon, 17 Jun 2019 09:31:06 +0000 (+0200) Subject: sleep: properly pass verb to sleep script X-Git-Tag: v243-rc1~280 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=98dc9d1f8f02ef968140a2d55ed91528e1ef8056;p=systemd%2F.git sleep: properly pass verb to sleep script Another fall-out from our rewriting of argv[] now. Fixes: #12782 --- diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index 11757f2efa..c38aa4ccf6 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),