
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; } memset(dev, 0, sizeof(*dev));
priv = malloc(sizeof(*priv)); if (!priv) { - free(priv); - return 0; + free(dev); + return -1; } memset(priv, 0, sizeof(*priv)); priv->regs = (struct cs8900_regs *)base_addr;