cs8900_initialize(): remove unecessary calls to free(), fix memory leak and
report errors in the return value

Signed-off-by: Matthias Kaehlcke <matth...@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;
-- 
1.6.3.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to