Message ID | 1448504819-19664-1-git-send-email-Peng.Fan@freescale.com |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
On Thu, Nov 26, 2015 at 10:26 AM, Peng Fan <Peng.Fan@freescale.com> wrote: > 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> > --- > 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; > } > > -- Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Hi Peng On Wed, Nov 25, 2015 at 8:26 PM, Peng Fan <Peng.Fan@freescale.com> wrote: > 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> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
On Thu, Nov 26, 2015 at 10:26:59AM +0800, Peng Fan wrote: > 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> Applied to u-boot/master, thanks!
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; }
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> --- common/miiphyutil.c | 2 ++ 1 file changed, 2 insertions(+)