Re: [PATCH] nvmem: core: Add const to pattrs allocation type
From: Kees Cook
Date: Thu Sep 17 2026 - 18:47:40 EST
On Thu, Sep 17, 2026 at 10:32:15PM +0100, Srinivas Kandagatla wrote:
>
>
> On 9/17/26 10:14 PM, Kees Cook wrote:
> > From: Kees Cook <kees+treewide@xxxxxxxxxx>
> >
> > In preparation for making the devm_kmalloc family of allocators type
> > aware, we need to make sure that the returned type from the allocation
> > matches the type of the variable being assigned. (Before, the allocator
> > would always return "void *", which can be implicitly cast to any
> > pointer type.)
> >
> > The assigned type is "const struct bin_attribute **", but the converted
> > allocation type would be "struct bin_attribute **", which is the same
> > type without the const qualifier. As there is no general way to safely
> > add const qualifiers, take the size from the assignment target instead.
> > No change in allocation size results.
> >
> > Build tested ARCH=x86_64 allmodconfig with GCC 16.2.0:
> > drivers/nvmem/core.o
> >
> > Assisted-by: LLM coccinelle
> > Signed-off-by: Kees Cook <kees+treewide@xxxxxxxxxx>
> > ---
> > Cc: Srinivas Kandagatla <srini@xxxxxxxxxx>
> > ---
> > drivers/nvmem/core.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> > index 0556d140170a..19edc9ab0282 100644
> > --- a/drivers/nvmem/core.c
> > +++ b/drivers/nvmem/core.c
> > @@ -485,7 +485,7 @@ static int nvmem_populate_sysfs_cells(struct nvmem_device *nvmem)
> > /* Allocate an array of attributes with a sentinel */
> > ncells = list_count_nodes(&nvmem->cells);
> > pattrs = devm_kcalloc(&nvmem->dev, ncells + 1,
> > - sizeof(struct bin_attribute *), GFP_KERNEL);
> > + sizeof(*pattrs), GFP_KERNEL);
>
> Thanks for the patch, while you are at it, there are few more instances
> just below this.
There are, but there were no type mismatches with those. pattrs is const,
but attrs and attrs[i].attr.name aren't, so no change is needed there.
Do you want me to flip the attrs devm_kcalloc sizeof to *attrs to much
style, though?
-Kees
--
Kees Cook