Re: [Linux-kernel-mentees] [PATCH net] rds: Prevent kernel-infoleak in rds_notify_queue_get()
From: Leon Romanovsky <leon@kernel.org>
Date: 2020-08-09 07:04:50
Also in:
linux-rdma, lkml, netdev
From: Leon Romanovsky <leon@kernel.org>
Date: 2020-08-09 07:04:50
Also in:
linux-rdma, lkml, netdev
On Sat, Aug 08, 2020 at 03:57:33PM -0700, Jack Leadford wrote:
Hello!
Thanks to Jason for getting this conversation back on track.
Yes: in general, {} or a partial initializer /will/ zero padding bits.
However, there is a bug in some versions of GCC where {} will /not/ zero
padding bits; actually, Jason's test program in this mail
https://lore.kernel.org/lkml/20200731143604.GF24045@ziepe.ca/ (local)
has the right ingredients to trigger the bug, but the GCC
versions used are outside of the bug window. :)
For more details on these cases and more (including said GCC bug), see my
paper at:
https://www.nccgroup.com/us/about-us/newsroom-and-events/blog/2019/october/padding-the-struct-how-a-compiler-optimization-can-disclose-stack-memory/
Hopefully this paper can serve as a helpful reference when these cases are
encountered in the kernel.I read the paper and didn't find exact GCC version, only remark that it was before GCC 7. So my question, why is this case different from any other GCC bugs? AFAIK, we don't add kernel code to overcome GCC bugs which exist in specific versions, which already were fixed. More on that, this paper talks about specific flow which doesn't exist in the discussed patch. Thanks _______________________________________________ Linux-kernel-mentees mailing list Linux-kernel-mentees@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees