qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] RE: [PATCH] hw/ivshmem.c don't check for negative values on


From: Hao, Xudong
Subject: [Qemu-devel] RE: [PATCH] hw/ivshmem.c don't check for negative values on unsigned data types
Date: Wed, 1 Sep 2010 08:51:40 +0800

Hao, Xudong wrote:
> address@hidden wrote:
>> From: Jes Sorensen <address@hidden>
>> 
>> There is no need to check for dest < 0 or vector >= 0 as both are
>> uint16_t. 
>> 
>> This should fix problems with broken build with aggressive compiler
>> flags. Reported by Xudong Hao <address@hidden>
>> 
>> Signed-off-by: Jes Sorensen <address@hidden> ---
>>  hw/ivshmem.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/hw/ivshmem.c b/hw/ivshmem.c
>> index bbb5cba..afebbc3 100644
>> --- a/hw/ivshmem.c
>> +++ b/hw/ivshmem.c
>> @@ -199,13 +199,13 @@ static void ivshmem_io_writel(void *opaque,
>> target_phys_addr_t addr, 
>> 
>>          case DOORBELL:
>>              /* check that dest VM ID is reasonable */
>> -            if ((dest < 0) || (dest > s->max_peer)) {
>> +            if (dest > s->max_peer) {
>>                  IVSHMEM_DPRINTF("Invalid destination VM ID (%d)\n",
>>                  dest); break;
>>              }
>> 
>>              /* check doorbell range */
>> -            if ((vector >= 0) && (vector <
>> s->peers[dest].nb_eventfds)) { +            if (vector <
>>                  s->peers[dest].nb_eventfds) {
>> 
>>                  IVSHMEM_DPRINTF("Writing %" PRId64 " to VM %d on
>> vector %d\n", write_one, dest, vector); if
>> (write(s->peers[dest].eventfds[vector],
> 
> This patch works for me.
> 

Jes, correct result is this patch works for me on x86_64 system. However, in 
i386 system, there is another bug:

...
  CC    x86_64-softmmu/ivshmem.o
  CC    x86_64-softmmu/fpu/softfloat-native.o
  CC    x86_64-softmmu/op_helper.o
cc1: warnings being treated as errors
/home/build/gitrepo/qemu/hw/ivshmem.c: In function 'check_shm_size.
/home/build/gitrepo/qemu/hw/ivshmem.c:357: warning: format '%ld' expects type 
'long int', but argt 5 has type '__off64_t
make[1]: *** [ivshmem.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [subdir-x86_64-softmmu] Error 2


Thanks,
Xudong


reply via email to

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