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

Re: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions


  • To: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
  • From: Luca Fancellu <Luca.Fancellu@xxxxxxx>
  • Date: Wed, 29 Apr 2026 10:08:40 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=gmail.com smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
  • Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yHB773K3ephjkbIyqrvDSSrnWJH8Cdj/TKx100kAPgM=; b=suk5JWpJfurVpDySSfIwuAt1/Tf+ZiZ30p7Q6ezrIa70+bQYUQk5oHTN+r30rsxyMsaUmQ9cgJWXPUvL+17lpnbnZf6QbsYk9k1RVioRf8SKxRz2VQ94QgBjpiRoIfa2CG17OtC0hWUHpSu/4ig6FawuLQfBUFMHdqykOBihJoB9wRvGp1+ODrqp1/Plp5zrigbXtcM8Cl0HpewqsLJ+qIF56Y5hl+Cti3RGbkWqKd+RjZbarSorJ3aZZCgd6IMxh2HWf5b+1/gg+kiUFmPSmKMWL7wc/e5GxP3O4x3t9aRt+iEpmfSi91eufe9396w4xrc2uAEvFUU7PUTCNUyWXw==
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yHB773K3ephjkbIyqrvDSSrnWJH8Cdj/TKx100kAPgM=; b=awcfLXf6RoQzQyFzShYxfXPPOp4aO1HkU+G11ALT15fAbkMyzHU1/1AnA73bXV4YJUgiT3694KpTWQGT3vchGBTty1DRT6144pmDLUAd1/Aq9D4cJqn+breyE85FCvZ1D+PzYzrMvrI3sR2gs3MuMIXKNWLp/pnMdty/84zSYXTpUbDqv2CW/SHANTG8ioK9XmO8gyAQrkKCx/jXzS+bg44MK3wRTAWAcycVRpBVy/nn0m73IvuYYDRNG2G0c0k2nEKJHPPsLTPIxITqUCGQTbd5kKcJBZ/HGb+5nAJqyICs5pwSuAW9AWqffihMre+gINcgxFFLF6YhZ3f2+/78Ow==
  • Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=uXHauZPtbYR2Yd36vsF0oqUmVlS5V4QVzgK//UbiV61ZHW3VJa+e3yZ1MUgygbnOSQCh+nFi3BzAWdVJoOLn2+4FNtroHHMX2HKFSL2m2pfu6Wr1Foi7uExjwAfEL5TC6HCQWCU894mnNU9BNukHozjQBpOCQOBRe31nAbz6RXU2/gKBDwYeu41EMGVuB5ZeJWkDIKHyMjFAW+Kb16nxdrZ6MViSa7rVAkLcUMfZ/eyYJrxDXPhN/I8Qn5wc0gy7l0ISHvRpuU0D+H31JaJp7rnQ9z+yXASJBiMQO+tpR+s2QGafVDBOSc3mLQixgMxyKqyTH4iuKa9kCYBNC2iOcg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jJ1c6ioPhtVtYw8vIoheK6n6mw/dJsd9UvIJRaJzOdifRANk1WzhNlseqRMVMr+4+6vhBqR8IVyDG5NYvXIs6Xr7cJyNryugVN7QIS9qGwGWYNxSeJyM6fVhexEmpGPP4SixVMaEgd1UA3CWVdjTcEJcK6WDl1FJVe7jhe3RF3WzFpTpHFMt26OvjnT5NntwD5cADEVx7qYYVGykMY9UaK8iGrPIR1+6cNZc9bPr4RVxLxk5OU1RbZR7DET+iFdAQ9B48E3U/QyFVb6NIFVorQJDLW7RVlp2htVUFpI1Ur+Y1faziOnVftV8/YufBUqxBHxfua9pqj1/xlXStEmymg==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"; dkim=pass header.s=selector1 header.d=arm.com header.i="@arm.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Romain Caritey <Romain.Caritey@xxxxxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <Bertrand.Marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Delivery-date: Wed, 29 Apr 2026 10:09:55 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Nodisclaimer: true
  • Thread-index: AQHc1xwXYYBcuLui0UypBKVcqnkF/bX10fCA
  • Thread-topic: [PATCH v4 01/11] xen: arm: fix len type for guest copy functions

Hi Oleksii,

> xen/arch/arm/guestcopy.c                | 6 +++---
> xen/arch/arm/include/asm/guest_access.h | 2 +-
> xen/include/xen/fdt-domain-build.h      | 2 +-
> 3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/arch/arm/guestcopy.c b/xen/arch/arm/guestcopy.c
> index fdb06422b8e9..86f1c9d0e318 100644
> --- a/xen/arch/arm/guestcopy.c
> +++ b/xen/arch/arm/guestcopy.c
> @@ -53,7 +53,7 @@ static struct page_info *translate_get_page(copy_info_t 
> info, uint64_t addr,
>     return page;
> }
> 
> -static unsigned long copy_guest(void *buf, uint64_t addr, unsigned int len,
> +static unsigned long copy_guest(void *buf, uint64_t addr, unsigned long len,
>                                 copy_info_t info, unsigned int flags)
> {
>     /* XXX needs to handle faults */
> @@ -65,7 +65,7 @@ static unsigned long copy_guest(void *buf, uint64_t addr, 
> unsigned int len,
>     while ( len )
>     {
>         void *p;
> -        unsigned int size = min(len, (unsigned int)PAGE_SIZE - offset);
> +        unsigned long size = min(len, PAGE_SIZE + 0UL - offset);
>         struct page_info *page;
> 
>         page = translate_get_page(info, addr, flags & COPY_linear,
> @@ -136,7 +136,7 @@ unsigned long raw_copy_from_guest(void *to, const void 
> __user *from,
> unsigned long copy_to_guest_phys_flush_dcache(struct domain *d,
>                                               paddr_t gpa,
>                                               void *buf,
> -                                              unsigned int len)
> +                                              unsigned long len)
> {

Now that we do this, potentially we could have truncation in the places where 
we store its return value
inside an int:

https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/kernel.c;h=7544fd50a20f08b5ba31cad7b94925112fdee956;hb=refs/heads/staging#l131

https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/common/device-tree/domain-build.c;h=c51520ebadf9950311f6c071e7e07042c7076a27;hb=refs/heads/staging#l442

Could you check and let me know if I’m correct or not?

Cheers,
Luca




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.