Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f0bfd40 authored by Vasily Averin's avatar Vasily Averin Committed by Greg Kroah-Hartman
Browse files

dlm: fixed memory leaks after failed ls_remove_names allocation



commit b982896cdb6e6a6b89d86dfb39df489d9df51e14 upstream.

If allocation fails on last elements of array need to free already
allocated elements.

v2: just move existing out_rsbtbl label to right place

Fixes 789924ba635f ("dlm: fix race between remove and lookup")
Cc: stable@kernel.org # 3.6

Signed-off-by: default avatarVasily Averin <vvs@virtuozzo.com>
Signed-off-by: default avatarDavid Teigland <teigland@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 385c23d6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -680,11 +680,11 @@ static int new_lockspace(const char *name, const char *cluster,
	kfree(ls->ls_recover_buf);
 out_lkbidr:
	idr_destroy(&ls->ls_lkbidr);
 out_rsbtbl:
	for (i = 0; i < DLM_REMOVE_NAMES_MAX; i++) {
		if (ls->ls_remove_names[i])
			kfree(ls->ls_remove_names[i]);
	}
 out_rsbtbl:
	vfree(ls->ls_rsbtbl);
 out_lsfree:
	if (do_unreg)