[PATCH] powerpc/xmon: Check cpu id in commands "c#", "dp#" and "dx#"

Cédric Le Goater clg at kaod.org
Wed Mar 10 22:18:49 AEDT 2021


On 3/9/21 7:11 PM, Greg Kurz wrote:
> All these commands end up peeking into the PACA using the user originated
> cpu id as an index. Check the cpu id is valid in order to prevent xmon to
> crash. Instead of printing an error, this follows the same behavior as the
> "lp s #" command : ignore the buggy cpu id parameter and fall back to the
> #-less version of the command.
> 
> Signed-off-by: Greg Kurz <groug at kaod.org>

Reviewed-by: Cédric Le Goater <clg at kaod.org>


> ---
>  arch/powerpc/xmon/xmon.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index 80fbf8968f77..d3d6e044228e 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -1248,7 +1248,7 @@ static int cpu_cmd(void)
>  	unsigned long cpu, first_cpu, last_cpu;
>  	int timeout;
>  
> -	if (!scanhex(&cpu)) {
> +	if (!scanhex(&cpu) || cpu >= num_possible_cpus()) {
>  		/* print cpus waiting or in xmon */
>  		printf("cpus stopped:");
>  		last_cpu = first_cpu = NR_CPUS;
> @@ -2678,7 +2678,7 @@ static void dump_pacas(void)
>  
>  	termch = c;	/* Put c back, it wasn't 'a' */
>  
> -	if (scanhex(&num))
> +	if (scanhex(&num) && num < num_possible_cpus())
>  		dump_one_paca(num);
>  	else
>  		dump_one_paca(xmon_owner);
> @@ -2751,7 +2751,7 @@ static void dump_xives(void)
>  
>  	termch = c;	/* Put c back, it wasn't 'a' */
>  
> -	if (scanhex(&num))
> +	if (scanhex(&num) && num < num_possible_cpus())
>  		dump_one_xive(num);
>  	else
>  		dump_one_xive(xmon_owner);
> 
> 



More information about the Linuxppc-dev mailing list