From: Leon Romanovsky <leon@kernel.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Moni Shoua <monis@mellanox.com>,
Doug Ledford <dledford@redhat.com>,
Sean Hefty <sean.hefty@intel.com>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
linux-rdma@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [patch] ib/rxe: double free on error
Date: Sat, 18 Jun 2016 10:34:30 +0000 [thread overview]
Message-ID: <20160618103430.GC5408@leon.nu> (raw)
In-Reply-To: <20160618084021.GB21713@mwanda>
[-- Attachment #1.1: Type: text/plain, Size: 433 bytes --]
On Sat, Jun 18, 2016 at 11:40:21AM +0300, Dan Carpenter wrote:
> "goto err1" could probably be remained "goto free_pkey_tbl" since
> that's what it does. This is a double free.
>
> Fixes: 0784481b2f32 ('Add initialization for Soft RoCE driver, pools constants etc.')
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Hi Dan,
Thank you for pointing it out.
I rewrote your patch a little bit and applied it.
[-- Attachment #1.2: 0001-IB-rxe-Simplify-rxe_init_ports-logic.patch --]
[-- Type: text/x-diff, Size: 1805 bytes --]
From 6a320576c7304905df722afcf1b8d49242c8ae48 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Sat, 18 Jun 2016 11:40:21 +0300
Subject: [PATCH] IB/rxe: Simplify rxe_init_ports logic
Simplify rxe_init_ports and remove double free.
Fixes: 0784481b2f32 ('Add initialization for Soft RoCE driver, pools constants etc.')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
---
drivers/infiniband/hw/rxe/rxe.c | 29 ++++++-----------------------
1 file changed, 6 insertions(+), 23 deletions(-)
diff --git a/drivers/infiniband/hw/rxe/rxe.c b/drivers/infiniband/hw/rxe/rxe.c
index 48c41e00..156a1021 100644
--- a/drivers/infiniband/hw/rxe/rxe.c
+++ b/drivers/infiniband/hw/rxe/rxe.c
@@ -165,42 +165,25 @@ static int rxe_init_port_param(struct rxe_port *port)
*/
static int rxe_init_ports(struct rxe_dev *rxe)
{
- int err;
- struct rxe_port *port;
-
- port = &rxe->port;
+ struct rxe_port *port = rxe->port;
rxe_init_port_param(port);
- if (!port->attr.pkey_tbl_len) {
- err = -EINVAL;
- goto err1;
- }
+ if (!port->attr.pkey_tbl_len || !port->attr.gid_tbl_len)
+ return -EINVAL;
port->pkey_tbl = kcalloc(port->attr.pkey_tbl_len,
sizeof(*port->pkey_tbl), GFP_KERNEL);
- if (!port->pkey_tbl) {
- err = -ENOMEM;
- goto err1;
- }
-
- port->pkey_tbl[0] = 0xffff;
- if (!port->attr.gid_tbl_len) {
- kfree(port->pkey_tbl);
- err = -EINVAL;
- goto err1;
- }
+ if (!port->pkey_tbl)
+ return -ENOMEM;
+ port->pkey_tbl[0] = 0xffff;
port->port_guid = rxe->ifc_ops->port_guid(rxe);
spin_lock_init(&port->port_lock);
return 0;
-
-err1:
- kfree(port->pkey_tbl);
- return err;
}
/* init pools of managed objects */
--
2.1.4
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Leon Romanovsky <leon@kernel.org>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Moni Shoua <monis@mellanox.com>,
Doug Ledford <dledford@redhat.com>,
Sean Hefty <sean.hefty@intel.com>,
Hal Rosenstock <hal.rosenstock@gmail.com>,
linux-rdma@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [patch] ib/rxe: double free on error
Date: Sat, 18 Jun 2016 13:34:30 +0300 [thread overview]
Message-ID: <20160618103430.GC5408@leon.nu> (raw)
In-Reply-To: <20160618084021.GB21713@mwanda>
[-- Attachment #1.1: Type: text/plain, Size: 433 bytes --]
On Sat, Jun 18, 2016 at 11:40:21AM +0300, Dan Carpenter wrote:
> "goto err1" could probably be remained "goto free_pkey_tbl" since
> that's what it does. This is a double free.
>
> Fixes: 0784481b2f32 ('Add initialization for Soft RoCE driver, pools constants etc.')
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Hi Dan,
Thank you for pointing it out.
I rewrote your patch a little bit and applied it.
[-- Attachment #1.2: 0001-IB-rxe-Simplify-rxe_init_ports-logic.patch --]
[-- Type: text/x-diff, Size: 1805 bytes --]
From 6a320576c7304905df722afcf1b8d49242c8ae48 Mon Sep 17 00:00:00 2001
From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Sat, 18 Jun 2016 11:40:21 +0300
Subject: [PATCH] IB/rxe: Simplify rxe_init_ports logic
Simplify rxe_init_ports and remove double free.
Fixes: 0784481b2f32 ('Add initialization for Soft RoCE driver, pools constants etc.')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
---
drivers/infiniband/hw/rxe/rxe.c | 29 ++++++-----------------------
1 file changed, 6 insertions(+), 23 deletions(-)
diff --git a/drivers/infiniband/hw/rxe/rxe.c b/drivers/infiniband/hw/rxe/rxe.c
index 48c41e00..156a1021 100644
--- a/drivers/infiniband/hw/rxe/rxe.c
+++ b/drivers/infiniband/hw/rxe/rxe.c
@@ -165,42 +165,25 @@ static int rxe_init_port_param(struct rxe_port *port)
*/
static int rxe_init_ports(struct rxe_dev *rxe)
{
- int err;
- struct rxe_port *port;
-
- port = &rxe->port;
+ struct rxe_port *port = rxe->port;
rxe_init_port_param(port);
- if (!port->attr.pkey_tbl_len) {
- err = -EINVAL;
- goto err1;
- }
+ if (!port->attr.pkey_tbl_len || !port->attr.gid_tbl_len)
+ return -EINVAL;
port->pkey_tbl = kcalloc(port->attr.pkey_tbl_len,
sizeof(*port->pkey_tbl), GFP_KERNEL);
- if (!port->pkey_tbl) {
- err = -ENOMEM;
- goto err1;
- }
-
- port->pkey_tbl[0] = 0xffff;
- if (!port->attr.gid_tbl_len) {
- kfree(port->pkey_tbl);
- err = -EINVAL;
- goto err1;
- }
+ if (!port->pkey_tbl)
+ return -ENOMEM;
+ port->pkey_tbl[0] = 0xffff;
port->port_guid = rxe->ifc_ops->port_guid(rxe);
spin_lock_init(&port->port_lock);
return 0;
-
-err1:
- kfree(port->pkey_tbl);
- return err;
}
/* init pools of managed objects */
--
2.1.4
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2016-06-18 10:34 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-18 8:40 [patch] ib/rxe: double free on error Dan Carpenter
2016-06-18 8:40 ` Dan Carpenter
2016-06-18 10:34 ` Leon Romanovsky [this message]
2016-06-18 10:34 ` Leon Romanovsky
[not found] ` <20160618103430.GC5408-2ukJVAZIZ/Y@public.gmane.org>
2016-06-18 11:00 ` Dan Carpenter
2016-06-18 11:00 ` Dan Carpenter
2016-06-18 11:03 ` Leon Romanovsky
2016-06-18 11:03 ` Leon Romanovsky
2016-06-18 11:22 ` Leon Romanovsky
2016-06-18 11:22 ` Leon Romanovsky
-- strict thread matches above, loose matches on Subject: below --
2016-06-18 13:36 [PATCH] IB/rxe: Simplify rxe_init_ports logic kbuild test robot
2016-06-18 13:36 ` kbuild test robot
2017-03-08 5:21 [PATCH] IB/rxe: double free on error Dan Carpenter
2017-03-08 5:21 ` Dan Carpenter
2017-03-08 6:58 ` Leon Romanovsky
2017-03-08 6:58 ` Leon Romanovsky
[not found] ` <20170308065829.GV14379-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-03-08 16:42 ` Moni Shoua
2017-03-08 16:42 ` Moni Shoua
2017-03-08 16:44 ` Moni Shoua
2017-03-08 16:44 ` Moni Shoua
2017-03-25 1:48 ` Doug Ledford
2017-03-25 1:48 ` Doug Ledford
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160618103430.GC5408@leon.nu \
--to=leon@kernel.org \
--cc=dan.carpenter@oracle.com \
--cc=dledford@redhat.com \
--cc=hal.rosenstock@gmail.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=monis@mellanox.com \
--cc=sean.hefty@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.