[U-Boot] [PATCH][v0] e1000_initialize: memset 0x0 nic and hw structure before their use
Wolfgang Denk
wd at denx.de
Thu Nov 11 08:37:44 CET 2010
Dear Prabhakar,
In message <1289451431-22179-1-git-send-email-prabhakar at freescale.com> you wrote:
> nic and hw structures are allocated via malloc i.e. return memory
> is not zero initialized. Because of this few structure member like
> "function pointers" are initialized with garbage values.
>
> It may cause problem. for eg. during eth_initialize, dev->write_hwaddr
> is used.
thanks. I already have a patch series "Add initialized eth_device
structure" on my stack. I think this covers this, too.
> nic = (struct eth_device *) malloc(sizeof (*nic));
> + if (nic)
> + memset(nic, 0, sizeof (*nic));
> + else
> + return 0;
Please don't write code like that. Why would the memset() [and only
this, none of the following code whch is in the same logioc branch?]
be in the if() branch?
Write instead:
nic = (struct eth_device *) malloc(sizeof (*nic));
if (!nic) {
issue error message
return error code
}
memset();
...
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Our missions are peaceful -- not for conquest. When we do battle, it
is only because we have no choice.
-- Kirk, "The Squire of Gothos", stardate 2124.5
More information about the U-Boot
mailing list