Hello,

I've got a few boxes that are leaking memory in handle_new_recv_msgs()
in ipmi_msghandler. AFAICS this is intentional, there's even an explicit
counter that tracks the number of times smi_msg is leaked.

I'm guessing there was a reason for doing this, but there wasn't any
discussion about it on LKML when the patch was accepted. Can you clarify
why something like the below patch won't work? I tried it on one of my
leaky boxes and nothing obviously horrible happened.

Thanks,
Calvin

----8<----
From: Calvin Owens <[email protected]>
Subject: [PATCH] ipmi_msghandler: Don't leak memory on errors

Signed-off-by: Calvin Owens <[email protected]>
---
 drivers/char/ipmi/ipmi_msghandler.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_msghandler.c 
b/drivers/char/ipmi/ipmi_msghandler.c
index 94fb407..ed82ffa 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -3834,10 +3834,7 @@ static void handle_new_recv_msgs(ipmi_smi_t intf)
                        break;
                } else {
                        list_del(&smi_msg->link);
-                       if (rv == 0)
-                               /* Message handled */
-                               ipmi_free_smi_msg(smi_msg);
-                       /* If rv < 0, fatal error, del but don't free. */
+                       ipmi_free_smi_msg(smi_msg);
                }
        }
        if (!run_to_completion)
-- 
2.4.6

Reply via email to