NetBSD-Bugs archive

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

re: kern/54150: COMPAT_50 vs NET_RT_IFLIST



The following reply was made to PR kern/54150; it has been noted by GNATS.

From: matthew green <mrg%eterna.com.au@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
    netbsd-bugs%netbsd.org@localhost, paul%whooppee.com@localhost
Subject: re: kern/54150: COMPAT_50 vs NET_RT_IFLIST
Date: Mon, 06 May 2019 06:35:42 +1000

 >  This looks to be an alignment problem - the sockaddr's containing
 >  the messages in the NEWADDR messages are aligned to a bigger boundary (8)
 >  than they should be for the NetBSD 5 format (4).
 
 this might be the original thing i posted about:
 
 #if !defined(_KERNEL) || !defined(COMPAT_RTSOCK)
 #define __align64       __aligned(sizeof(uint64_t))
 ...
 
 struct if_msghdr {
         u_short ifm_msglen __align64;
 ...
         struct  if_data ifm_data __align64;
 ...
 
 this means that compat code aaccessing the *real* one has the
 wrong alignment applied to the these members.
 
 i'm pretty sure all the "__align64" in sys/net/*.h are wrong.
 
 
 .mrg.
 


Home | Main Index | Thread Index | Old Index