[PATCH] infiniband: cxgb4: cm: Check skb value

Artem Chernyshev posted 1 patch 2 years, 3 months ago
There is a newer version of this series
drivers/infiniband/hw/cxgb4/cm.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] infiniband: cxgb4: cm: Check skb value
Posted by Artem Chernyshev 2 years, 3 months ago
get_skb() can't allocate skb in case of OOM.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru>
---
 drivers/infiniband/hw/cxgb4/cm.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index ced615b5ea09..775da62b38ec 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -1965,6 +1965,10 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
 	int win;
 
 	skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
+	if (!skb) {
+		pr_err("%s - cannot alloc skb!\n", __func__);
+		return -ENOMEM;
+	}
 	req = __skb_put_zero(skb, sizeof(*req));
 	req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR));
 	req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16)));
-- 
2.37.3
z
Re: [PATCH] infiniband: cxgb4: cm: Check skb value
Posted by Krzysztof Kozlowski 2 years, 3 months ago
On 04/09/2023 13:59, Artem Chernyshev wrote:
> get_skb() can't allocate skb in case of OOM.
> 
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru>
> ---
>  drivers/infiniband/hw/cxgb4/cm.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
> index ced615b5ea09..775da62b38ec 100644
> --- a/drivers/infiniband/hw/cxgb4/cm.c
> +++ b/drivers/infiniband/hw/cxgb4/cm.c
> @@ -1965,6 +1965,10 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
>  	int win;
>  
>  	skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
> +	if (!skb) {
> +		pr_err("%s - cannot alloc skb!\n", __func__);

I don't think we print memory allocation failures.

Best regards,
Krzysztof
Re: [PATCH] infiniband: cxgb4: cm: Check skb value
Posted by Artem Chernyshev 2 years, 3 months ago
On Mon, Sep 04, 2023 at 10:07:26PM +0200, Krzysztof Kozlowski wrote:
> On 04/09/2023 13:59, Artem Chernyshev wrote:
> > get_skb() can't allocate skb in case of OOM.
> > 
> > Found by Linux Verification Center (linuxtesting.org) with SVACE.
> > 
> > Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru>
> > ---
> >  drivers/infiniband/hw/cxgb4/cm.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> > 
> > diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
> > index ced615b5ea09..775da62b38ec 100644
> > --- a/drivers/infiniband/hw/cxgb4/cm.c
> > +++ b/drivers/infiniband/hw/cxgb4/cm.c
> > @@ -1965,6 +1965,10 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
> >  	int win;
> >  
> >  	skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
> > +	if (!skb) {
> > +		pr_err("%s - cannot alloc skb!\n", __func__);
> 
> I don't think we print memory allocation failures.
> 
> Best regards,
> Krzysztof
> 

Sure, will fix that in v2

Thanks,
Artem
[PATCH v2] infiniband: cxgb4: cm: Check skb value
Posted by Artem Chernyshev 2 years, 3 months ago
get_skb() can't allocate skb in case of OOM.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Artem Chernyshev <artem.chernyshev@red-soft.ru>
---
V2 -> remove pr_err

 drivers/infiniband/hw/cxgb4/cm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index ced615b5ea09..54145b33a523 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -1965,6 +1965,8 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
 	int win;
 
 	skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
+	if (!skb)
+		return -ENOMEM;
 	req = __skb_put_zero(skb, sizeof(*req));
 	req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR));
 	req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16)));
-- 
2.37.3
Re: [PATCH v2] infiniband: cxgb4: cm: Check skb value
Posted by Leon Romanovsky 2 years, 3 months ago
On Tue, 05 Sep 2023 15:40:48 +0300, Artem Chernyshev wrote:
> get_skb() can't allocate skb in case of OOM.
> 
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> 

Applied, thanks!

[1/1] infiniband: cxgb4: cm: Check skb value
      https://git.kernel.org/rdma/rdma/c/8fb8a82086f5bd

Best regards,
-- 
Leon Romanovsky <leon@kernel.org>