diff options
-rw-r--r-- | kexec/arch/arm64/kexec-arm64.c | 9 |
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; } |