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

Re: [PATCH 2/2] xen/common: llc-coloring: reject empty color tokens


  • To: Mykola Kvach <xakep.amatop@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Orzel, Michal" <michal.orzel@xxxxxxx>
  • Date: Mon, 18 May 2026 08:49:38 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • 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=lyFcLFBZ/FHST6KrIS+sKf3VQK0G9mbIEtwtjkVCqdU=; b=TxeQnLbWFXuhu+9FVdh73JxBHsGy3MBXh/E45PrceDoN+PMAYqPXY44oTUvuMQSqzBWU3Zzty2fSVeOw/w2PUa3InBHUvn+w3D9WGDPDJXKI0DybuZc+cwdBVQh3G/aFAHLhbVtR9CF5cctIm9hnP50bd66lj2XA3iW7PRvDaq1vjc4WEzEniMQZsDrmLFNzfl3NzeAANo2pqOIH2XhSjbE99fExdll2SKkyiP33qFLT2qmEfXYhcNUxSXLZkBi6d2FhgrE9PLaYLO7Uv7VZDHTIyi8GUhPBAwDfwoNKKJrDl7j7MiHGHVVxrCpZNOTaPOeWpKyG6/NPj+7IK8oxug==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c6AOCoVAyYfn02aiN+DUacLfty/GyC1/qHkbdPj2auyhJEyQ2xoZOozCdxo9k4ebXcGCAFfJqKEzO0UNO1L2MopCY1jk+8Q5kcs7TXYZld6lfLX8tFAvTJW8AACGm7u4fe6gvdWhbKf3EpKoMUBQPDFVaNs5BlY0uxyoQ/Bw7vWr/kH/TNxfrnEl9Zxxr8Pcymw4pzMmP0mYVXuhJpqzFK76IQoOfeWeoFp4azxsx4urIoR/vvhoKjKM2GtNegUuIZodVOoXff/Onjc6vPu2RZakpTMRsiUvRKTfFbiAQ6J0C4QAjWmXggD0LWxXR0z6zJ2SVBX/I7JIL52Zc3FZFg==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Cc: Mykola Kvach <mykola_kvach@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, "Jan Beulich" <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Carlo Nonato <carlo.nonato@xxxxxxxxxxxxxxx>, "Miccio, Luca" <luca.miccio@xxxxxxx>, Marco Solieri <marco.solieri@xxxxxxxxxxxxxxx>
  • Delivery-date: Mon, 18 May 2026 06:49:57 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

+cc Carlo, Marco, Luca

On 16-May-26 17:03, Mykola Kvach wrote:
> From: Mykola Kvach <mykola_kvach@xxxxxxxx>
> 
> parse_color_config() currently accepts delimiters where a color value
> is expected because simple_strtoul() returns zero without advancing the
> input pointer. This makes strings such as ",2-6", "-10,19-20" or
> "1,,2" look as if an empty value was color 0.
> 
> Also add the missing newline to the DT color parsing error message.
> 
> Fixes: 6cdea3444eaf ("xen/arm: add Dom0 cache coloring support")
> Signed-off-by: Mykola Kvach <mykola_kvach@xxxxxxxx>
I don't see anything in the user facing docs that would make me think the
current behavior is intentional, therefore:
Reviewed-by: Michal Orzel <michal.orzel@xxxxxxx>

I will still give a chance for the original authors to chime in if needed.

~Michal

> ---
>  xen/common/llc-coloring.c | 13 ++++++++++---
>  1 file changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/llc-coloring.c b/xen/common/llc-coloring.c
> index 2606cb0977..5d00d4b40e 100644
> --- a/xen/common/llc-coloring.c
> +++ b/xen/common/llc-coloring.c
> @@ -64,14 +64,21 @@ static int __init parse_color_config(const char *buf, 
> unsigned int colors[],
>  
>      while ( *s != '\0' )
>      {
> +        const char *endp;
>          unsigned int color, start, end;
>  
> -        start = simple_strtoul(s, &s, 0);
> +        start = simple_strtoul(s, &endp, 0);
> +        if ( endp == s )
> +            goto fail;
> +        s = endp;
>  
>          if ( *s == '-' )    /* Range */
>          {
>              s++;
> -            end = simple_strtoul(s, &s, 0);
> +            end = simple_strtoul(s, &endp, 0);
> +            if ( endp == s )
> +                goto fail;
> +            s = endp;
>          }
>          else                /* Single value */
>              end = start;
> @@ -334,7 +341,7 @@ int __init domain_set_llc_colors_from_str(struct domain 
> *d, const char *str)
>      err = parse_color_config(str, colors, max_nr_colors, &num_colors);
>      if ( err )
>      {
> -        printk(XENLOG_ERR "Error parsing LLC color configuration");
> +        printk(XENLOG_ERR "Error parsing LLC color configuration\n");
>          xfree(colors);
>          return err;
>      }




 


Rackspace

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