From 9136b90f4c643aefcb9fd65c4282b700874f0e90 Mon Sep 17 00:00:00 2001 From: Mr NeilBrown Date: Wed, 6 Nov 2019 16:42:34 +1100 Subject: [PATCH] LU-12678 lnet: lnet_startup_lndnet: avoid use-after-free If lnet_startup_lndni() fails it will free 'ni' (via lnet_ni_free()). So we mustn't de-reference it in the LASSERT() in that case Signed-off-by: Mr NeilBrown Change-Id: I01e35013e028a8f95f169e25aeb0c344b2310380 Reviewed-on: https://review.whamcloud.com/36855 Tested-by: jenkins Tested-by: Maloo Reviewed-by: James Simmons Reviewed-by: Serguei Smirnov Reviewed-by: Oleg Drokin --- lnet/lnet/api-ni.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lnet/lnet/api-ni.c b/lnet/lnet/api-ni.c index a593597..16ed7b6 100644 --- a/lnet/lnet/api-ni.c +++ b/lnet/lnet/api-ni.c @@ -2375,12 +2375,12 @@ lnet_startup_lndnet(struct lnet_net *net, struct lnet_lnd_tunables *tun) rc = lnet_startup_lndni(ni, tun); - LASSERT(ni->ni_net->net_tunables.lct_peer_timeout <= 0 || - ni->ni_net->net_lnd->lnd_query != NULL); - if (rc < 0) goto failed1; + LASSERT(ni->ni_net->net_tunables.lct_peer_timeout <= 0 || + ni->ni_net->net_lnd->lnd_query != NULL); + lnet_ni_addref(ni); list_add_tail(&ni->ni_netlist, &local_ni_list); -- 1.8.3.1