summaryrefslogtreecommitdiff
path: root/common/miiphyutil.c
diff options
context:
space:
mode:
authorPeng Fan <Peng.Fan@freescale.com>2015-11-26 10:26:59 +0800
committerguoyin.chen <guoyin.chen@freescale.com>2016-03-04 15:53:37 +0800
commit1a07d4585b0497f54bf2d127e5fb8ba7cfa2958a (patch)
treeb9c2850b8d27134778a7309394501892b6fa47b0 /common/miiphyutil.c
parentbc26ac46150f1e84fa937c71a589ac957de316ee (diff)
downloadu-boot-imx-1a07d4585b0497f54bf2d127e5fb8ba7cfa2958a.zip
u-boot-imx-1a07d4585b0497f54bf2d127e5fb8ba7cfa2958a.tar.gz
u-boot-imx-1a07d4585b0497f54bf2d127e5fb8ba7cfa2958a.tar.bz2
common: miiphyutil: avoid memory leak
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 <Peng.Fan@freescale.com> Cc: Joe Hershberger <joe.hershberger@ni.com> Cc: Simon Glass <sjg@chromium.org> Cc: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com> (cherry picked from commit 746da1bd42aa5ecc47898399514c9c76d0329706)
Diffstat (limited to 'common/miiphyutil.c')
-rw-r--r--common/miiphyutil.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/common/miiphyutil.c b/common/miiphyutil.c
index c0274f4..cff93b1 100644
--- a/common/miiphyutil.c
+++ b/common/miiphyutil.c
@@ -113,6 +113,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;
}