Re: [PATCH 3/4] char/tpm: Improve a size determination in nine functions

From: Mimi Zohar
Date: Tue Oct 17 2017 - 11:17:55 EST


On Tue, 2017-10-17 at 14:58 +0200, Julia Lawall wrote:
>
> On Tue, 17 Oct 2017, Mimi Zohar wrote:
>
> > On Tue, 2017-10-17 at 11:50 +0000, Alexander.Steffen@xxxxxxxxxxxx
> > wrote:
> > > > > Replace the specification of data structures by pointer dereferences
> > > > > as the parameter for the operator "sizeof" to make the corresponding
> > > > > size
> > > > > determination a bit safer according to the Linux coding style
> > > > > convention.
> > > >
> > > >
> > > > This patch does one style in favor of the other.
> > >
> > > I actually prefer that style, so I'd welcome this change :)
> >
> > Style changes should be reviewed and documented, like any other code
> > change, and added to Documentation/process/coding-style.rst or an
> > equivalent file.
>
> Actually, it has been there for many years:
>
> 14) Allocating memory
> ---------------------
> ...
> The preferred form for passing a size of a struct is the following:
>
> .. code-block:: c
>
> p = kmalloc(sizeof(*p), ...);
>
> The alternative form where struct name is spelled out hurts readability and
> introduces an opportunity for a bug when the pointer variable type is changed
> but the corresponding sizeof that is passed to a memory allocator is not.

True, thanks for the reminder. ÂIs this common in new code? ÂIs there
a script/ or some other automated way of catching this usage before
patches are upstreamed?

Just as you're doing here, the patch description should reference this
in the patch description.

Mimi