# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Date 1167966417 -32400 # Node ID 25cdcc5f21f8147371aed5fb8f56d93479df0ca8 # Parent 338ceb7b1f0993bf9735c0c1c5d21e39c381cf2f fix xencomm_copy_{from, to}_guest. It should not call paddr_to_maddr() with invalid address. PATCHNAME: fix_xencomm_copy_tofrom_guest Signed-off-by: Isaku Yamahata diff -r 338ceb7b1f09 -r 25cdcc5f21f8 xen/common/xencomm.c --- a/xen/common/xencomm.c Thu Jan 04 10:58:01 2007 +0000 +++ b/xen/common/xencomm.c Fri Jan 05 12:06:57 2007 +0900 @@ -119,7 +119,7 @@ xencomm_copy_from_guest(void *to, const chunksz -= chunk_skip; skip -= chunk_skip; - if (skip == 0) { + if (skip == 0 && chunksz > 0) { unsigned long src_maddr; unsigned long dest = (unsigned long)to + to_pos; unsigned int bytes = min(chunksz, n - to_pos); @@ -225,7 +225,7 @@ xencomm_copy_to_guest(void *to, const vo chunksz -= chunk_skip; skip -= chunk_skip; - if (skip == 0) { + if (skip == 0 && chunksz > 0) { unsigned long dest_maddr; unsigned long source = (unsigned long)from + from_pos; unsigned int bytes = min(chunksz, n - from_pos);