Re: [PATCH 2/6] treewide: remove using list iterator after loop body as a ptr
From: Kees Cook <hidden>
Date: 2022-03-02 20:59:39
Also in:
alsa-devel, amd-gfx, dmaengine, dri-devel, intel-gfx, intel-wired-lan, kvm, linux-arch, linux-aspeed, linux-block, linux-cifs, linux-crypto, linux-f2fs-devel, linux-fsdevel, linux-iio, linux-media, linux-mediatek, linux-pm, linux-rdma, linux-scsi, linux-staging, linux-tegra, linux-usb, linux-wireless, linuxppc-dev, lkml, nouveau
On Wed, Mar 02, 2022 at 12:18:45PM -0800, Linus Torvalds wrote:
On Wed, Mar 2, 2022 at 12:07 PM Kees Cook [off-list ref] wrote:
quoted
I've long wanted to change kfree() to explicitly set pointers to NULL on
free. https://github.com/KSPP/linux/issues/87
We've had this discussion with the gcc people in the past, and gcc
actually has some support for it, but it's sadly tied to the actual
function name (ie gcc has some special-casing for "free()")
See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94527
for some of that discussion.
Oh, and I see some patch actually got merged since I looked there last
so that you can mark "deallocator" functions, but I think it's only
for the context matching, not for actually killing accesses to the
pointer afterwards.
Ah! I missed that getting added in GCC 11. But yes, there it is:
https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-malloc-function-attribute
Hah, now we may need to split __malloc from __alloc_size. ;)
I'd still like the NULL assignment behavior, though, since some things
can easily avoid static analysis.
--
Kees Cook