lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 12 Nov 2020 09:48:16 -0600
From:   Steve Wahl <steve.wahl@....com>
To:     Mike Travis <mike.travis@....com>
Cc:     Borislav Petkov <bp@...en8.de>,
        Thomas Gleixner <tglx@...utronix.de>,
        Ingo Molnar <mingo@...hat.com>,
        Steve Wahl <steve.wahl@....com>,
        "H. Peter Anvin" <hpa@...or.com>, x86@...nel.org,
        Dimitri Sivanich <dimitri.sivanich@....com>,
        Russ Anderson <russ.anderson@....com>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86/platform/uv: UV5 Fix copied output archtype

On Tue, Nov 10, 2020 at 07:04:18PM -0600, Mike Travis wrote:
> A test shows that the output contains a space:
>     # cat /proc/sgi_uv/archtype
>     NSGI4 U/UVX
> Remove that embedded space by copying the "trimmed" buffer instead of the
> untrimmed input character list.  Use sizeof to remove size dependency
> on copy out length.  Increase output buffer size by one character just
> in case BIOS sends an 8 character string for archtype.
> 
> Fixes: 1e61f5a95f191 (Add and decode Arch Type in UVsystab)
> 
> Signed-off-by: Mike Travis <mike.travis@....com>

Reviewed-by: Steve Wahl <steve.wahl@....com>


> ---
>  arch/x86/kernel/apic/x2apic_uv_x.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
> index 3115caa7d7d0..1b98f8c12b96 100644
> --- a/arch/x86/kernel/apic/x2apic_uv_x.c
> +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
> @@ -33,7 +33,7 @@ static union uvh_apicid		uvh_apicid;
>  static int			uv_node_id;
>  
>  /* Unpack AT/OEM/TABLE ID's to be NULL terminated strings */
> -static u8 uv_archtype[UV_AT_SIZE];
> +static u8 uv_archtype[UV_AT_SIZE + 1];
>  static u8 oem_id[ACPI_OEM_ID_SIZE + 1];
>  static u8 oem_table_id[ACPI_OEM_TABLE_ID_SIZE + 1];
>  
> @@ -320,7 +320,7 @@ static int __init decode_arch_type(unsigned long ptr)
>  
>  	if (n > 0 && n < sizeof(uv_ate->archtype)) {
>  		pr_info("UV: UVarchtype received from BIOS\n");
> -		uv_stringify(UV_AT_SIZE, uv_archtype, uv_ate->archtype);
> +		uv_stringify(sizeof(uv_archtype), uv_archtype, uv_ate->archtype);
>  		return 1;
>  	}
>  	return 0;
> @@ -378,7 +378,7 @@ static int __init uv_set_system_type(char *_oem_id, char *_oem_table_id)
>  	if (!early_get_arch_type())
>  
>  		/* If not use OEM ID for UVarchtype */
> -		uv_stringify(UV_AT_SIZE, uv_archtype, _oem_id);
> +		uv_stringify(sizeof(uv_archtype), uv_archtype, oem_id);
>  
>  	/* Check if not hubbed */
>  	if (strncmp(uv_archtype, "SGI", 3) != 0) {
> -- 
> 2.21.0
> 

-- 
Steve Wahl, Hewlett Packard Enterprise

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ