[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <c76a03be72ae4dfc9b6a65d418d699e2@AcuMS.aculab.com>
Date: Tue, 29 Jun 2021 10:37:48 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Andreas Fink' <afink@...t.fink.org>,
Dan Carpenter <dan.carpenter@...cle.com>
CC: Vlad Yasevich <vyasevich@...il.com>,
Xin Long <lucien.xin@...il.com>,
"Neil Horman" <nhorman@...driver.com>,
Marcelo Ricardo Leitner <marcelo.leitner@...il.com>,
"David S. Miller" <davem@...emloft.net>,
"Jakub Kicinski" <kuba@...nel.org>,
"linux-sctp@...r.kernel.org" <linux-sctp@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"kernel-janitors@...r.kernel.org" <kernel-janitors@...r.kernel.org>
Subject: RE: [PATCH net] sctp: prevent info leak in sctp_make_heartbeat()
> > - struct sctp_sender_hb_info hbinfo;
> > + struct sctp_sender_hb_info hbinfo = {};
> Does that gcc extension work with all compilers, especially clang?
> > So that's nice, because adding memset()s to zero everywhere was ugly.
The 'real fun' (tm) starts when the bit pattern for the NULL
pointer isn't 'all zeros'.
Using memset() is then broken - I suspect the compiler is
expected to initialise pointers to the correct NULL pattern.
Not that I think anyone sane would consider trying to compile
any 'normal' C code for such a system.
OTOH it is probably why clang is bleating about (int)((char *)0 + 4)
being undefined behaviour.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists