From: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
To: Larry Finger <Larry.Finger@lwfinger.net>,
Phillip Potter <phil@philpotter.co.uk>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
Pavel Skripkin <paskripkin@gmail.com>
Subject: Re: [PATCH 1/2] staging: r8188eu: Use usb_control_msg_recv/send() in usbctrl_vendorreq()
Date: Tue, 24 Aug 2021 14:01:02 +0200 [thread overview]
Message-ID: <6601006.JhxPbakEoc@localhost.localdomain> (raw)
In-Reply-To: <d5ac7cd8-dc81-732d-b583-628cd2a273cb@gmail.com>
On Tuesday, August 24, 2021 1:07:46 PM CEST Pavel Skripkin wrote:
>
> Btw, not related to your patch, but I start think, that this check:
>
>
> if (!pIo_buf) {
> DBG_88E("[%s] pIo_buf == NULL\n", __func__);
> status = -ENOMEM;
> goto release_mutex;
> }
>
> Should be wrapped as
>
> if (WARN_ON(unlikely(!pIo_buf)) {
> ...
> }
>
> Since usb_vendor_req_buf is initialized in ->probe() and I can't see
> possible calltrace, which can cause zeroing this pointer.
I see that usb_vendor_req_buf is initialized in rtw_init_intf_priv(). It depends on a
kzalloc() success on allocating memory. Obviously it could fail to allocate. If it fails,
rtw_init_intf_priv() returns _FAIL to its caller(s) (whichever they are - I didn't go too
deep in understanding the possible calls chains).
What does really matter is that dvobjpriv->usb_vendor_req_buf _could_ _indeed_ _be_
in an _un-initialized_ _status_ when it is assigned to pIo_buf.
> Something _completely_ wrong is going on if usb_vendor_req_buf is NULL,
> and we should complain loud about it. What do you think?
That "if (!pIo_buf)" in usbctrl_vendorreq() manages a possible but remote (I guess)
un-initialization by releasing a mutex and returning -ENOMEM.
I think that technically speaking it would suffice if callers read and manage properly
the -ENOMEM returned by usbctrl_vendorreq().
Said that, I have no sufficient experience to say if exiting and returning -ENOMEM would
suffice to not make happen "_something _completely_ wrong_" or if a WARN_ON is required.
I'm sorry for not being able to go beyond the confirmation that indeed dvobjpriv->usb_vendor_req
could be un-initialized.
Regards,
Fabio
> With regards,
> Pavel Skripkin
>
next prev parent reply other threads:[~2021-08-24 12:01 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-23 22:37 [PATCH 0/2] staging: r8188eu: Use new usb_control_msg_recv/send() Fabio M. De Francesco
2021-08-23 22:37 ` [PATCH 1/2] staging: r8188eu: Use usb_control_msg_recv/send() in usbctrl_vendorreq() Fabio M. De Francesco
2021-08-24 0:08 ` Phillip Potter
2021-08-24 0:31 ` Fabio M. De Francesco
2021-08-24 1:38 ` Fabio M. De Francesco
2021-08-24 2:01 ` Fabio M. De Francesco
2021-08-24 5:44 ` Christophe JAILLET
2021-08-24 10:38 ` Fabio M. De Francesco
2021-08-24 17:03 ` Christophe JAILLET
2021-08-24 21:59 ` Phillip Potter
2021-08-24 8:13 ` Pavel Skripkin
2021-08-24 8:53 ` Fabio M. De Francesco
2021-08-24 11:07 ` Pavel Skripkin
2021-08-24 12:01 ` Fabio M. De Francesco [this message]
2021-08-24 12:09 ` Pavel Skripkin
2021-08-24 14:55 ` Fabio M. De Francesco
2021-08-23 22:37 ` [PATCH 2/2] staging: r8188eu: Make some clean-ups " Fabio M. De Francesco
2021-08-24 0:10 ` Phillip Potter
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=6601006.JhxPbakEoc@localhost.localdomain \
--to=fmdefrancesco@gmail.com \
--cc=Larry.Finger@lwfinger.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=paskripkin@gmail.com \
--cc=phil@philpotter.co.uk \
/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.