
tsec_initialize allocates a private driver structure using malloc. Should the memory allocation of this private structure fail, the function execution is aborted with a return 0, but the previously allocated device structure is never freed, hence leaked.
Free the device structure in the error case.
Signed-off-by: Mario Six mario.six@gdsys.cc Acked-by: Joe Hershberger joe.hershberger@ni.com ---
v1 -> v2: None
--- drivers/net/tsec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c index 071595218e..44140fb037 100644 --- a/drivers/net/tsec.c +++ b/drivers/net/tsec.c @@ -701,8 +701,10 @@ static int tsec_initialize(bd_t *bis, struct tsec_info_struct *tsec_info)
priv = (struct tsec_private *)malloc(sizeof(*priv));
- if (!priv) + if (!priv) { + free(dev); return 0; + }
priv->regs = tsec_info->regs; priv->phyregs_sgmii = tsec_info->miiregs_sgmii; -- 2.11.0