
21 Jan
2010
21 Jan
'10
10:10 p.m.
Matthias Kaehlcke wrote:
cs8900_initialize(): remove unecessary calls to free(), fix memory leak and report errors in the return value
Signed-off-by: Matthias Kaehlcke matthias@kaehlcke.net
drivers/net/cs8900.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c index df36004..7895048 100644 --- a/drivers/net/cs8900.c +++ b/drivers/net/cs8900.c @@ -308,15 +308,14 @@ int cs8900_initialize(u8 dev_num, int base_addr)
dev = malloc(sizeof(*dev)); if (!dev) {
free(dev);
return 0;
return -1;
'return 0' is actually correct. It refers to the number of devices that were initialized. Removing the 'free' calls is good, though.
} memset(dev, 0, sizeof(*dev));
priv = malloc(sizeof(*priv)); if (!priv) {
free(priv);
return 0;
free(dev);
} memset(priv, 0, sizeof(*priv)); priv->regs = (struct cs8900_regs *)base_addr;return -1;
regards, Ben