From: Vasily Averin Date: Thu, 15 Nov 2018 10:15:05 +0000 (+0300) Subject: dlm: fixed memory leaks after failed ls_remove_names allocation X-Git-Tag: v5.4-rc1~1953^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b982896cdb6e6a6b89d86dfb39df489d9df51e14;p=platform%2Fkernel%2Flinux-rpi.git dlm: fixed memory leaks after failed ls_remove_names allocation 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: Vasily Averin Signed-off-by: David Teigland --- diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c index 7b9d47f..3f992ef 100644 --- a/fs/dlm/lockspace.c +++ b/fs/dlm/lockspace.c @@ -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)