Hi, On Wed, May 26, 2021 at 9:40 AM Colin King <colin.king@xxxxxxxxxxxxx> wrote: > > From: Colin Ian King <colin.king@xxxxxxxxxxxxx> > > There is an error return path that is not kfree'ing mh after > it has been successfully allocates. Fix this by free'ing it. > > Addresses-Coverity: ("Resource leak") > Fixes: a070a91cf140 ("fs: dlm: add more midcomms hooks") > Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> > --- > fs/dlm/rcom.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/dlm/rcom.c b/fs/dlm/rcom.c > index 085f21966c72..19298edc1573 100644 > --- a/fs/dlm/rcom.c > +++ b/fs/dlm/rcom.c > @@ -393,6 +393,7 @@ static void receive_rcom_lookup(struct dlm_ls *ls, struct dlm_rcom *rc_in) > if (rc_in->rc_id == 0xFFFFFFFF) { > log_error(ls, "receive_rcom_lookup dump from %d", nodeid); > dlm_dump_rsb_name(ls, rc_in->rc_buf, len); > + kfree(mh); > return; This seems to be a bigger issue, we cannot revert the buffer allocation with a kfree, we cannot revert it at all. We should avoid any error handling between create_rcom() and send_rcom(). In general between get_buffer/commit_buffer. I don't see a problem with moving the error handling before create_rcom(). That should fix the issue. - Alex