diff options
| author | Anders Kaseorg <[andersk@ksplice.com]> | 2010-08-17 07:00:03 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-08-17 20:31:51 -0400 |
| commit | f81380925209bc60732a57eef41ab440c056aacf (patch) | |
| tree | d72c28aa2d101acacc733f41678a1764885b74f9 | |
| parent | 24763d80fbb45aaf477d53c2203c929f6c41b5fc (diff) | |
tipc: Fix log buffer memory leak if initialization fails
Moves log buffer cleanup into tipc_core_stop() so that memory allocated
for the log buffer is freed if tipc_core_start() is unsuccessful.
Signed-off-by: Anders Kaseorg <andersk@ksplice.com>
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
| -rw-r--r-- | net/tipc/core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/net/tipc/core.c b/net/tipc/core.c index 696468117985..466b861dab91 100644 --- a/net/tipc/core.c +++ b/net/tipc/core.c | |||
| @@ -169,6 +169,7 @@ void tipc_core_stop(void) | |||
| 169 | tipc_nametbl_stop(); | 169 | tipc_nametbl_stop(); |
| 170 | tipc_ref_table_stop(); | 170 | tipc_ref_table_stop(); |
| 171 | tipc_socket_stop(); | 171 | tipc_socket_stop(); |
| 172 | tipc_log_resize(0); | ||
| 172 | } | 173 | } |
| 173 | 174 | ||
| 174 | /** | 175 | /** |
| @@ -203,7 +204,9 @@ static int __init tipc_init(void) | |||
| 203 | { | 204 | { |
| 204 | int res; | 205 | int res; |
| 205 | 206 | ||
| 206 | tipc_log_resize(CONFIG_TIPC_LOG); | 207 | if (tipc_log_resize(CONFIG_TIPC_LOG) != 0) |
| 208 | warn("Unable to create log buffer\n"); | ||
| 209 | |||
| 207 | info("Activated (version " TIPC_MOD_VER | 210 | info("Activated (version " TIPC_MOD_VER |
| 208 | " compiled " __DATE__ " " __TIME__ ")\n"); | 211 | " compiled " __DATE__ " " __TIME__ ")\n"); |
| 209 | 212 | ||
| @@ -230,7 +233,6 @@ static void __exit tipc_exit(void) | |||
| 230 | tipc_core_stop_net(); | 233 | tipc_core_stop_net(); |
| 231 | tipc_core_stop(); | 234 | tipc_core_stop(); |
| 232 | info("Deactivated\n"); | 235 | info("Deactivated\n"); |
| 233 | tipc_log_resize(0); | ||
| 234 | } | 236 | } |
| 235 | 237 | ||
| 236 | module_init(tipc_init); | 238 | module_init(tipc_init); |
