diff options
author | Peng Fan <Peng.Fan@freescale.com> | 2015-11-26 10:26:59 +0800 |
---|---|---|
committer | guoyin.chen <guoyin.chen@freescale.com> | 2016-03-04 15:35:53 +0800 |
commit | 17fdf4168e35e061cd0d522dabdb8d559a463906 (patch) | |
tree | b9c2850b8d27134778a7309394501892b6fa47b0 | |
parent | cd6c9f2881617bda1d07a8fa6a9ecd1c665cb7c1 (diff) | |
download | u-boot-imx-17fdf4168e35e061cd0d522dabdb8d559a463906.zip u-boot-imx-17fdf4168e35e061cd0d522dabdb8d559a463906.tar.gz u-boot-imx-17fdf4168e35e061cd0d522dabdb8d559a463906.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)
-rw-r--r-- | common/miiphyutil.c | 2 |
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; } |