From 9aec250ec2362c12c8e6be62ab21b8269bbb4c65 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 30 May 2024 04:19:38 +0200 Subject: Merging upstream version 252.25. Signed-off-by: Daniel Baumann --- src/shared/reboot-util.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/shared/reboot-util.c') diff --git a/src/shared/reboot-util.c b/src/shared/reboot-util.c index 756f9d3..618658a 100644 --- a/src/shared/reboot-util.c +++ b/src/shared/reboot-util.c @@ -11,8 +11,15 @@ #include "reboot-util.h" #include "string-util.h" #include "umask-util.h" +#include "utf8.h" #include "virt.h" +bool reboot_parameter_is_valid(const char *parameter) { + assert(parameter); + + return ascii_is_valid(parameter) && strlen(parameter) <= NAME_MAX; +} + int update_reboot_parameter_and_warn(const char *parameter, bool keep) { int r; @@ -30,6 +37,9 @@ int update_reboot_parameter_and_warn(const char *parameter, bool keep) { return 0; } + if (!reboot_parameter_is_valid(parameter)) + return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid reboot parameter '%s'.", parameter); + RUN_WITH_UMASK(0022) { r = write_string_file("/run/systemd/reboot-param", parameter, WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC); -- cgit v1.2.3