Re: sizeof *data, when data isn't initalized, is that right?
Hubert CHAUMETTE <[email protected]> Thu, 22 Jan 2015 19:39:47 +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