From: Peter Wu Date: Mon, 8 Aug 2016 09:58:51 +0000 (+0200) Subject: xfrm: fix memleak in another error path of build_xfrm_sa_message X-Git-Tag: libnl3_2_29rc1~24^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f1029d44be079f3fe82ec6bb03993d454990f84b;p=libnl xfrm: fix memleak in another error path of build_xfrm_sa_message Signed-off-by: Peter Wu Signed-off-by: Thomas Haller --- diff --git a/lib/xfrm/sa.c b/lib/xfrm/sa.c index 74b7ee9..9e2c353 100644 --- a/lib/xfrm/sa.c +++ b/lib/xfrm/sa.c @@ -1175,7 +1175,10 @@ static int build_xfrm_sa_message(struct xfrmnl_sa *tmpl, int cmd, int flags, str strncpy(auth->alg_name, tmpl->auth->alg_name, sizeof(auth->alg_name)); auth->alg_key_len = tmpl->auth->alg_key_len; memcpy(auth->alg_key, tmpl->auth->alg_key, (tmpl->auth->alg_key_len + 7) / 8); - NLA_PUT(msg, XFRMA_ALG_AUTH, len, auth); + if (nla_put(msg, XFRMA_ALG_AUTH, len, auth) < 0) { + free(auth); + goto nla_put_failure; + } free(auth); } }