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]
Message-ID: <0936dba4-4de5-49ff-b90c-1263e25920d2@paulmck-laptop>
Date: Wed, 23 Oct 2024 15:35:16 -0700
From: "Paul E. McKenney" <paulmck@...nel.org>
To: kobak@...dia.com
Cc: mochs@...dia.com, rui.zhang@...el.com, ardb@...nel.org,
	rafael.j.wysocki@...el.com, sfr@...b.auug.org.au,
	linux-kernel@...r.kernel.org, linux-next@...r.kernel.org,
	linux-toolchains@...r.kernel.org
Subject: Re: [BUG] Argument-alignment build error with clang

On Wed, Oct 23, 2024 at 03:26:57PM -0700, Paul E. McKenney wrote:
> Hello!
> 
> Running rcutorture on next-20241023 got me lots of these:
> 
> drivers/acpi/prmt.c:156:29: error: passing 1-byte aligned argument to 4-byte aligned parameter 1 of 'efi_pa_va_lookup' may result in an unaligned pointer access [-Werror,-Walign-mismatch]
>           156 |                         (void *)efi_pa_va_lookup(&th->guid, handler_info->handler_address);
> 
> This is built with CC=clang.  I don't see this diagnostic with GCC.
> But we are supposed to be able to build with clang, so...

Ah, and this might help:

clang version 18.1.8 (CentOS 18.1.8-3.el9)

							Thanx, Paul

> The first argument is the address of one of these:
> 
> typedef struct {
> 	__u8 b[UUID_SIZE];
> } guid_t;
> 
> Where UUID_SIZE is as follows:
> 
> #define UUID_SIZE 16
> 
> But this guid_t is a member of one of these:
> 
> struct prm_handler_info {
> 	guid_t guid;
> 	efi_status_t (__efiapi *handler_addr)(u64, void *);
> 	u64 static_data_buffer_addr;
> 	u64 acpi_param_buffer_addr;
> 
> 	struct list_head handler_list;
> };
> 
> One can argue that this structure must be 16-bit aligned on a
> 64-bit build.  So maybe this is a bug in clang's diagnostics, hence
> linux-toolchains on CC.
> 
> Thoughts?
> 
> 						Thanx, Paul
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ