The following code will alloc memory for new_dev and ldev:
"
new_dev = mdio_alloc();
ldev = malloc(sizeof(*ldev));
"
Either new_dev or ldev is NULL, directly return, but this may leak memory.
So before return, using free(ldev) and mdio_free(new_dev) to avoid
leaking memory, also free can handle NULL pointer.

Signed-off-by: Peng Fan <[email protected]>
Cc: Joe Hershberger <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Bin Meng <[email protected]>
---
 common/miiphyutil.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index 0811e09..7e41957 100644
--- a/common/miiphyutil.c
+++ b/common/miiphyutil.c
@@ -114,6 +114,8 @@ void miiphy_register(const char *name,
        if (new_dev == NULL || ldev == NULL) {
                printf("miiphy_register: cannot allocate memory for '%s'\n",
                        name);
+               free(ldev);
+               mdio_free(new_dev);
                return;
        }
 
-- 
2.6.2


_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to