diff options
author | Sean Hefty <sean.hefty@intel.com> | 2006-12-14 14:22:19 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-01-07 23:17:34 -0500 |
commit | 30a5ec982e4cfa955f93c454debaefc4d61d2da6 (patch) | |
tree | 693056e3dbf07c0c2574f638021481a23ff8fb48 /drivers/infiniband/core | |
parent | 881a045fc5b454b57c69e010acecd5830d87e242 (diff) |
RDMA/ucma: Fix struct ucma_event leak when backlog is full
We discard new connection requests while the listen backlog is full,
but leak a struct ucma_event in the process. Free the structure in
this case.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/core')
-rw-r--r-- | drivers/infiniband/core/ucma.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/core/ucma.c b/drivers/infiniband/core/ucma.c index 81a5cdc5733a..9f30f9bffc61 100644 --- a/drivers/infiniband/core/ucma.c +++ b/drivers/infiniband/core/ucma.c | |||
@@ -209,6 +209,7 @@ static int ucma_event_handler(struct rdma_cm_id *cm_id, | |||
209 | if (event->event == RDMA_CM_EVENT_CONNECT_REQUEST) { | 209 | if (event->event == RDMA_CM_EVENT_CONNECT_REQUEST) { |
210 | if (!ctx->backlog) { | 210 | if (!ctx->backlog) { |
211 | ret = -EDQUOT; | 211 | ret = -EDQUOT; |
212 | kfree(uevent); | ||
212 | goto out; | 213 | goto out; |
213 | } | 214 | } |
214 | ctx->backlog--; | 215 | ctx->backlog--; |