qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v9 04/15] hw/i386/pc: replace use of strtol with qemu_strtol


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v9 04/15] hw/i386/pc: replace use of strtol with qemu_strtol in x86_load_linux()
Date: Tue, 15 Oct 2019 13:36:09 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.0

Hi Sergio,

On 10/15/19 1:23 PM, Sergio Lopez wrote:
Follow checkpatch.pl recommendation and replace the use of strtol with
qemu_strtol in x86_load_linux().

"with qemu_strtoui"


Signed-off-by: Sergio Lopez <address@hidden>
---
  hw/i386/pc.c | 9 ++++++++-
  1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 77e86bfc3d..c8608b8007 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"
@@ -1202,6 +1203,7 @@ static void x86_load_linux(PCMachineState *pcms,
      vmode = strstr(kernel_cmdline, "vga=");
      if (vmode) {
          unsigned int video_mode;
+        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_strtoui(vmode, NULL, 0, &video_mode);
+            if (ret != 0) {
+                fprintf(stderr, "qemu: can't parse 'vga' parameter: %s\n",
+                        strerror(-ret));

(Cc'ing Markus/Daniel just in case)

I'm wondering if using fprintf() is appropriate, thinking about instantiating a machine via libvirt, is this error reported to the user?

I first thought about using error_report() instead:

    error_report("qemu: can't parse 'vga' parameter: %s",
                 strerror(-ret));

But this API is meaningful when used in console/monitor. We can't get here from the monitor, so:
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>

+                exit(1);
+            }
          }
          stw_p(header + 0x1fa, video_mode);
      }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]