diff options
author | Allan Stephens <allan.stephens@windriver.com> | 2006-06-26 02:50:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-06-26 02:50:30 -0400 |
commit | c33d53b23589d9133af85effefbaa619853eb7f0 (patch) | |
tree | 8680ad82411d2dac96374e9133ce4c266a5322ae /net/tipc/link.c | |
parent | a75bf874278d8318ffe11043f3acb9b281fa911a (diff) |
[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/tipc/link.c')
-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) | |||
1135 | if (n_ptr) { | 1135 | if (n_ptr) { |
1136 | tipc_node_lock(n_ptr); | 1136 | tipc_node_lock(n_ptr); |
1137 | l_ptr = n_ptr->active_links[selector & 1]; | 1137 | l_ptr = n_ptr->active_links[selector & 1]; |
1138 | dbg("tipc_link_send: found link %x for dest %x\n", l_ptr, dest); | ||
1139 | if (l_ptr) { | 1138 | if (l_ptr) { |
1139 | dbg("tipc_link_send: found link %x for dest %x\n", l_ptr, dest); | ||
1140 | res = tipc_link_send_buf(l_ptr, buf); | 1140 | res = tipc_link_send_buf(l_ptr, buf); |
1141 | } else { | ||
1142 | dbg("Attempt to send msg to unreachable node:\n"); | ||
1143 | msg_dbg(buf_msg(buf),">>>"); | ||
1144 | buf_discard(buf); | ||
1141 | } | 1145 | } |
1142 | tipc_node_unlock(n_ptr); | 1146 | tipc_node_unlock(n_ptr); |
1143 | } else { | 1147 | } else { |