summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2006-06-26 08:50:30 +0200
committerDavid S. Miller <davem@davemloft.net>2006-06-26 08:50:30 +0200
commitc33d53b23589d9133af85effefbaa619853eb7f0 (patch)
tree8680ad82411d2dac96374e9133ce4c266a5322ae
parent[TIPC]: Added missing warning for out-of-memory condition (diff)
downloadlinux-c33d53b23589d9133af85effefbaa619853eb7f0.tar.xz
linux-c33d53b23589d9133af85effefbaa619853eb7f0.zip
[TIPC]: Fixed memory leak in tipc_link_send() when destination is unreachable
Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Per Liden <per.liden@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/tipc/link.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index ba7d3f19be12..ff40c9195fef 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1135,9 +1135,13 @@ int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector)
if (n_ptr) {
tipc_node_lock(n_ptr);
l_ptr = n_ptr->active_links[selector & 1];
- dbg("tipc_link_send: found link %x for dest %x\n", l_ptr, dest);
if (l_ptr) {
+ dbg("tipc_link_send: found link %x for dest %x\n", l_ptr, dest);
res = tipc_link_send_buf(l_ptr, buf);
+ } else {
+ dbg("Attempt to send msg to unreachable node:\n");
+ msg_dbg(buf_msg(buf),">>>");
+ buf_discard(buf);
}
tipc_node_unlock(n_ptr);
} else {