On Mon, Mar 15, 2021 at 01:59:00PM +0100, Borislav Petkov wrote:
> From: Borislav Petkov <b...@suse.de>
> 
> Input lines like
> 
>   0x8000001E,     0, EAX,   31:0, Extended APIC ID
> 
> where the short name is missing lead to a segfault because the loop
> takes the long name for the short name and tokens[5] becomes NULL which
> explodes later in strcpy().
> 
> Check its value too before further processing.
 
Thanks for the fix!

Acked-by: Feng Tang <feng.t...@intel.com>

> Signed-off-by: Borislav Petkov <b...@suse.de>
> ---
>  tools/arch/x86/kcpuid/kcpuid.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tools/arch/x86/kcpuid/kcpuid.c b/tools/arch/x86/kcpuid/kcpuid.c
> index 6048da34fcc6..dae75511fef7 100644
> --- a/tools/arch/x86/kcpuid/kcpuid.c
> +++ b/tools/arch/x86/kcpuid/kcpuid.c
> @@ -324,6 +324,8 @@ static int parse_line(char *line)
>               str = NULL;
>       }
>       tokens[5] = strtok(str, "\n");
> +     if (!tokens[5])
> +             goto err_exit;
>  
>       /* index/main-leaf */
>       index = strtoull(tokens[0], NULL, 0);
> -- 
> 2.29.2

Reply via email to