Philippe Mathieu-Daudé <phi...@redhat.com> writes:

> Hi Sergio,
>
> On 10/10/19 4:31 PM, Sergio Lopez wrote:
>> Follow checkpatch.pl recommendation and replace the use of strtol with
>> qemu_strtol in x86_load_linux().
>>
>> Signed-off-by: Sergio Lopez <s...@redhat.com>
>> ---
>>   hw/i386/pc.c | 11 +++++++++--
>>   1 file changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>> index 77e86bfc3d..e6bcc3ff42 100644
>> --- a/hw/i386/pc.c
>> +++ b/hw/i386/pc.c
>> @@ -68,6 +68,7 @@
>>   #include "qemu/config-file.h"
>>   #include "qemu/error-report.h"
>>   #include "qemu/option.h"
>> +#include "qemu/cutils.h"
>>   #include "hw/acpi/acpi.h"
>>   #include "hw/acpi/cpu_hotplug.h"
>>   #include "hw/boards.h"
>> @@ -1201,7 +1202,8 @@ static void x86_load_linux(PCMachineState *pcms,
>>       /* handle vga= parameter */
>>       vmode = strstr(kernel_cmdline, "vga=");
>>       if (vmode) {
>> -        unsigned int video_mode;
>> +        long video_mode;
>
> Why do you change 'video_mode' to a signed type?

qemu_strtol fourth argument is a pointer to long int. According to
"linux/Documentation/admin-guide/svga.rst", valid video modes are in the
in the range of 0x0 to 0xffff (matching the stw_p below), so this change
shouldn't be a problem.

>> +        int ret;
>>           /* skip "vga=" */
>>           vmode += 4;
>>           if (!strncmp(vmode, "normal", 6)) {
>> @@ -1211,7 +1213,12 @@ static void x86_load_linux(PCMachineState *pcms,
>>           } else if (!strncmp(vmode, "ask", 3)) {
>>               video_mode = 0xfffd;
>>           } else {
>> -            video_mode = strtol(vmode, NULL, 0);
>> +            ret = qemu_strtol(vmode, NULL, 0, &video_mode);
>> +            if (ret != 0) {
>> +                fprintf(stderr, "qemu: can't parse 'vga' parameter: %s\n",
>> +                        strerror(-ret));
>> +                exit(1);
>> +            }
>>           }
>>           stw_p(header + 0x1fa, video_mode);
>>       }
>>

Attachment: signature.asc
Description: PGP signature

Reply via email to