diff options
author | Allan Stephens <allan.stephens@windriver.com> | 2006-06-25 23:50:30 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-06-25 23:50:30 -0700 |
commit | c33d53b23589d9133af85effefbaa619853eb7f0 (patch) | |
tree | 8680ad82411d2dac96374e9133ce4c266a5322ae /net | |
parent | a75bf874278d8318ffe11043f3acb9b281fa911a (diff) | |
download | linux-c33d53b23589d9133af85effefbaa619853eb7f0.tar.gz linux-c33d53b23589d9133af85effefbaa619853eb7f0.tar.bz2 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>
Diffstat (limited to 'net')
-rw-r--r-- | net/tipc/link.c | 6 |
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 { |