On 26/05/2021 15:19, Alexander Ahring Oder Aring wrote: > 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. Good point, I'll send a V2 in a while > > - Alex >