All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: gregkh@linuxfoundation.org, linux-arm-msm@vger.kernel.org,
	linux-kernel@vger.kernel.org, arnd@arndb.de,
	Dan Carpenter <dan.carpenter@oracle.com>
Subject: Re: [PATCH v2] misc: fastrpc: fix potential fastrpc_invoke_ctx leak
Date: Tue, 12 May 2020 10:29:17 -0700	[thread overview]
Message-ID: <20200512172917.GG57962@builder.lan> (raw)
In-Reply-To: <20200512110930.2550-1-srinivas.kandagatla@linaro.org>

On Tue 12 May 04:09 PDT 2020, Srinivas Kandagatla wrote:

> fastrpc_invoke_ctx can have refcount of 2 in error path where
> rpmsg_send() fails to send invoke message. decrement the refcount
> properly in the error path to fix this leak.
> 
> This also fixes below static checker warning:
> 
> drivers/misc/fastrpc.c:990 fastrpc_internal_invoke()
> warn: 'ctx->refcount.refcount.ref.counter' not decremented on lines: 990.
> 
> Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context")
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Thanks, that looks better.

Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>

Regards,
Bjorn

> ---
> Changes since v1:
> 	moved fastrpc_context_put to fastrpc_invoke_send()
> 
>  drivers/misc/fastrpc.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
> index 9065d3e71ff7..7939c55daceb 100644
> --- a/drivers/misc/fastrpc.c
> +++ b/drivers/misc/fastrpc.c
> @@ -904,6 +904,7 @@ static int fastrpc_invoke_send(struct fastrpc_session_ctx *sctx,
>  	struct fastrpc_channel_ctx *cctx;
>  	struct fastrpc_user *fl = ctx->fl;
>  	struct fastrpc_msg *msg = &ctx->msg;
> +	int ret;
>  
>  	cctx = fl->cctx;
>  	msg->pid = fl->tgid;
> @@ -919,7 +920,13 @@ static int fastrpc_invoke_send(struct fastrpc_session_ctx *sctx,
>  	msg->size = roundup(ctx->msg_sz, PAGE_SIZE);
>  	fastrpc_context_get(ctx);
>  
> -	return rpmsg_send(cctx->rpdev->ept, (void *)msg, sizeof(*msg));
> +	ret = rpmsg_send(cctx->rpdev->ept, (void *)msg, sizeof(*msg));
> +
> +	if (ret)
> +		fastrpc_context_put(ctx);
> +
> +	return ret;
> +
>  }
>  
>  static int fastrpc_internal_invoke(struct fastrpc_user *fl,  u32 kernel,
> -- 
> 2.21.0
> 

      reply	other threads:[~2020-05-12 17:30 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-12 11:09 [PATCH v2] misc: fastrpc: fix potential fastrpc_invoke_ctx leak Srinivas Kandagatla
2020-05-12 17:29 ` Bjorn Andersson [this message]

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=20200512172917.GG57962@builder.lan \
    --to=bjorn.andersson@linaro.org \
    --cc=arnd@arndb.de \
    --cc=dan.carpenter@oracle.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=srinivas.kandagatla@linaro.org \
    /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.