summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kexec/arch/arm64/kexec-arm64.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c
index a206c17..7a12479 100644
--- a/kexec/arch/arm64/kexec-arm64.c
+++ b/kexec/arch/arm64/kexec-arm64.c
@@ -598,8 +598,15 @@ int arm64_load_other_segments(struct kexec_info *info,
char command_line[COMMAND_LINE_SIZE] = "";
if (arm64_opts.command_line) {
+ if (strlen(arm64_opts.command_line) >
+ sizeof(command_line) - 1) {
+ fprintf(stderr,
+ "Kernel command line too long for kernel!\n");
+ return EFAILED;
+ }
+
strncpy(command_line, arm64_opts.command_line,
- sizeof(command_line));
+ sizeof(command_line) - 1);
command_line[sizeof(command_line) - 1] = 0;
}