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 <[email protected]>
> > 
> > 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 <[email protected]>
> > ---
> > Cc: Srinivas Kandagatla <[email protected]>
> > ---
> >  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

Reply via email to