Re: sizeof *data, when data isn't initalized, is that right?

Hubert CHAUMETTE <[email protected]> Thu, 22 Jan 2015 19:38:44 +0100
Newsgroups org.kernel.vger.linux-c-programming
Message-ID <[email protected]>
Hi,

As I understand it, sizeof(*data) is the same as sizeof(struct mcp23s08=
_driver_data). There should be no pointer dereference here, so I would =
say it isn't an issue. That notation is quite confusing though.
Note that data is surrounded by parenthesis, at least in Linux 3.18, in=
 gpio-mcp23s08.c
Regards,

Hubert

Le 22/01/2015 19:19, Daniel Hilst Selli a =C3=A9crit :
> I came across this code:
>
>         struct mcp23s08_driver_data     *data;
>     ...
>     data =3D kzalloc(sizeof *data + chips * sizeof(struct mcp23s08),
>                         GFP_KERNEL);
>
>
> Since data wasn't initialized when `sizeof *data' is called, wasn't t=
his a non-initialized pointer dereference?
>
> Cheers
> --=20
> To unsubscribe from this list: send the line "unsubscribe linux-c-pro=
gramming" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-c-progr=
amming" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html