Re: [PATCH] genetlink: prevent memory leak in netlbl_unlabel_defconf

From: Paul Moore
Date: Wed Sep 25 2019 - 19:27:34 EST


On Wed, Sep 25, 2019 at 6:10 PM Navid Emamdoost
<navid.emamdoost@xxxxxxxxx> wrote:
>
> In netlbl_unlabel_defconf if netlbl_domhsh_add_default fails the
> allocated entry should be released.
>
> Signed-off-by: Navid Emamdoost <navid.emamdoost@xxxxxxxxx>
> ---
> net/netlabel/netlabel_unlabeled.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)

It is worth noting that netlbl_unlabel_defconf() is only called during
kernel boot by netlbl_init() and if netlbl_unlabel_defconf() returns
an error code the system panics, so this isn't currently a very
practical concern.

That said, netlbl_unlabel_defconf() *should* clean up here just on
principal if nothing else.

Acked-by: Paul Moore <paul@xxxxxxxxxxxxxx>

> diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
> index d2e4ab8d1cb1..c63ec480ee4e 100644
> --- a/net/netlabel/netlabel_unlabeled.c
> +++ b/net/netlabel/netlabel_unlabeled.c
> @@ -1541,8 +1541,10 @@ int __init netlbl_unlabel_defconf(void)
> entry->family = AF_UNSPEC;
> entry->def.type = NETLBL_NLTYPE_UNLABELED;
> ret_val = netlbl_domhsh_add_default(entry, &audit_info);
> - if (ret_val != 0)
> + if (ret_val != 0) {
> + kfree(entry);
> return ret_val;
> + }
>
> netlbl_unlabel_acceptflg_set(1, &audit_info);
>
> --
> 2.17.1
>


--
paul moore
www.paul-moore.com