From: Zhang Yanfei <zhangyanfei.yes@gmail.com>
To: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Cc: tjd21@cl.cam.ac.uk, kexec@lists.infradead.org,
Wang YanQing <udknight@gmail.com>,
horms@verge.net.au, ebiederm@xmission.com, hari@in.ibm.com
Subject: Re: [PATCH RESEND]kexec:i386/kexec-[bzImage|elf-x86]:x86_64/kexec-bzImage64: Use "\0" as command line instead of empty command line
Date: Tue, 16 Apr 2013 22:09:18 +0800 [thread overview]
Message-ID: <516D5B8E.6070302@gmail.com> (raw)
In-Reply-To: <51628E04.8010002@cn.fujitsu.com>
于 2013年04月08日 17:29, Zhang Yanfei 写道:
> 于 2013年04月08日 17:23, Wang YanQing 写道:
>> This patch prevents the problems to happen below:
>> In setup_linux_bootloader_parameters_high
>> 120 cmdline_ptr = ((char *)real_mode) + cmdline_offset;
>> 121 memcpy(cmdline_ptr, cmdline, cmdline_len);
>> 122 cmdline_ptr[cmdline_len - 1] = '\0';
>>
>> if cmdline_len == 0, Line 122 will corrupt kernel16 buf just before the commandline.
>> And in do_bzImage_load, for example,
>> 369 cmdline_end = setup_base + kern16_size_needed + command_line_len - 1;
>> 370 elf_rel_set_symbol(&info->rhdr, "cmdline_end", &cmdline_end,
>> 371 sizeof(unsigned long));
>> Line 369 will go wrong, too.
>>
>> Signed-off-by: Wang YanQing <udknight@gmail.com>
>> ---
>> Hi Zhang Yanfei, could you give your signed-off-by to
>> this patch?
>
> Yeah.
>
> Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
>
> Hi Simon, could you please take a look at this to see if the change is reasonable?
> After all, if no commadline, we make the commandline_len to 1. I don't know if
> this behaviour could be accepted by you.
>
Hi Simon
What is your opinion about this patch?
>>
>> kexec/arch/i386/kexec-bzImage.c | 3 +++
>> kexec/arch/i386/kexec-elf-x86.c | 3 +++
>> kexec/arch/x86_64/kexec-bzImage64.c | 6 +++++-
>> 3 files changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/kexec/arch/i386/kexec-bzImage.c b/kexec/arch/i386/kexec-bzImage.c
>> index 99fd790..29f280d 100644
>> --- a/kexec/arch/i386/kexec-bzImage.c
>> +++ b/kexec/arch/i386/kexec-bzImage.c
>> @@ -435,6 +435,9 @@ int bzImage_load(int argc, char **argv, const char *buf, off_t len,
>> command_line_len = 0;
>> if (command_line) {
>> command_line_len = strlen(command_line) +1;
>> + } else {
>> + command_line = strdup("\0");
>> + command_line_len = 1;
>> }
>> ramdisk_buf = 0;
>> if (ramdisk) {
>> diff --git a/kexec/arch/i386/kexec-elf-x86.c b/kexec/arch/i386/kexec-elf-x86.c
>> index e62ebcb..788a209 100644
>> --- a/kexec/arch/i386/kexec-elf-x86.c
>> +++ b/kexec/arch/i386/kexec-elf-x86.c
>> @@ -161,6 +161,9 @@ int elf_x86_load(int argc, char **argv, const char *buf, off_t len,
>> command_line_len = 0;
>> if (command_line) {
>> command_line_len = strlen(command_line) +1;
>> + } else {
>> + command_line = strdup("\0");
>> + command_line_len = 1;
>> }
>>
>> /* Need to append some command line parameters internally in case of
>> diff --git a/kexec/arch/x86_64/kexec-bzImage64.c b/kexec/arch/x86_64/kexec-bzImage64.c
>> index 86e6d13..ec614a4 100644
>> --- a/kexec/arch/x86_64/kexec-bzImage64.c
>> +++ b/kexec/arch/x86_64/kexec-bzImage64.c
>> @@ -284,8 +284,12 @@ int bzImage64_load(int argc, char **argv, const char *buf, off_t len,
>> }
>> command_line = concat_cmdline(command_line, append);
>> command_line_len = 0;
>> - if (command_line)
>> + if (command_line) {
>> command_line_len = strlen(command_line) + 1;
>> + } else {
>> + command_line = strdup("\0");
>> + command_line_len = 1;
>> + }
>> ramdisk_buf = 0;
>> if (ramdisk)
>> ramdisk_buf = slurp_file(ramdisk, &ramdisk_length);
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2013-04-16 14:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-08 9:23 [PATCH RESEND]kexec:i386/kexec-[bzImage|elf-x86]:x86_64/kexec-bzImage64: Use "\0" as command line instead of empty command line Wang YanQing
2013-04-08 9:29 ` Zhang Yanfei
2013-04-09 6:14 ` Zhang Yanfei
2013-04-16 14:09 ` Zhang Yanfei [this message]
2013-04-17 0:13 ` Simon Horman
2013-04-17 1:27 ` Zhang Yanfei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=516D5B8E.6070302@gmail.com \
--to=zhangyanfei.yes@gmail.com \
--cc=ebiederm@xmission.com \
--cc=hari@in.ibm.com \
--cc=horms@verge.net.au \
--cc=kexec@lists.infradead.org \
--cc=tjd21@cl.cam.ac.uk \
--cc=udknight@gmail.com \
--cc=zhangyanfei@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.