Handle the addresses and values for {in,out}[bwl] as unsigned (ie
with strtoul), as per the protocol specification comment. This fixes
a test failure in test_i440fx_defaults on 32-bit hosts where the test
tries to write 0x80000000 and qtest was instead writing 0x7fffffff.

Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
---
This fixes the actual parsing error; checking strtol errors is
a separate bug which should be done for the whole file.

 qtest.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/qtest.c b/qtest.c
index 3bba3e5..07a9612 100644
--- a/qtest.c
+++ b/qtest.c
@@ -271,8 +271,8 @@ static void qtest_process_command(CharDriverState *chr, 
gchar **words)
         uint32_t value;
 
         g_assert(words[1] && words[2]);
-        addr = strtol(words[1], NULL, 0);
-        value = strtol(words[2], NULL, 0);
+        addr = strtoul(words[1], NULL, 0);
+        value = strtoul(words[2], NULL, 0);
 
         if (words[0][3] == 'b') {
             cpu_outb(addr, value);
@@ -290,7 +290,7 @@ static void qtest_process_command(CharDriverState *chr, 
gchar **words)
         uint32_t value = -1U;
 
         g_assert(words[1]);
-        addr = strtol(words[1], NULL, 0);
+        addr = strtoul(words[1], NULL, 0);
 
         if (words[0][2] == 'b') {
             value = cpu_inb(addr);
-- 
1.7.10.4


Reply via email to