Re: [patch] ext2_fill_super breakage

Alexander Viro
2002-03-28T14:21:47Z

On Wed, 27 Mar 2002, Andrew Morton wrote:

> In 2.5.7 there is a thinko in the allocation and initialisation
> of the fs-private superblock for ext2. It's passing the wrong type
> to the sizeof operator (which of course gives the wrong size)
> when allocating and clearing the memory.

> Lesson for the day: this is one of the reasons why this idiom:
>
> some_type *p;
>
> p = malloc(sizeof(*p));
> ...
> memset(p, 0, sizeof(*p));
>
> is preferable to
>
> some_type *p;
>
> p = malloc(sizeof(some_type));
> ...
> memset(p, 0, sizeof(some_type));

... however, there is a lot of reasons why the former is preferable.
For one thing, the latter is hell on any search. Moreover, I would
argue that memset() on a structure is not a good idea - better do
the explicit initialization.