From: Shreeya Patel <shreeya.patel23498@gmail.com>
To: "Tobin C. Harding" <me@tobin.cc>
Cc: gregkh@linuxfoundation.org, devel@driverdev.osuosl.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Staging: rtlwifi: Remove NULL pointer dereference
Date: Sat, 14 Oct 2017 00:25:04 +0530 [thread overview]
Message-ID: <1507920904.2087.2.camel@gmail.com> (raw)
In-Reply-To: <20171012021647.GB30753@eros>
On Thu, 2017-10-12 at 13:16 +1100, Tobin C. Harding wrote:
> On Wed, Oct 11, 2017 at 06:02:47PM +0530, Shreeya Patel wrote:
> >
> > On Tue, 2017-10-10 at 11:06 +1100, Tobin C. Harding wrote:
> > >
> > > On Tue, Oct 10, 2017 at 02:48:58AM +0530, Shreeya Patel wrote:
> > > >
> > > >
> > > > Remove NULL pointer dereference as it results in undefined
> > > > behaviour, and will usually lead to a runtime error.
> > > The diff does not show any pointer dereference so it is hard to
> > > understand what you are trying to do
> > > with this patch.
> > >
> > > >
> > > >
> > > > Signed-off-by: Shreeya Patel <shreeya.patel23498@gmail.com>
> > > > ---
> > > > drivers/staging/rtlwifi/base.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/staging/rtlwifi/base.c
> > > > b/drivers/staging/rtlwifi/base.c
> > > > index b88b0e8..5bb8f98 100644
> > > > --- a/drivers/staging/rtlwifi/base.c
> > > > +++ b/drivers/staging/rtlwifi/base.c
> > > > @@ -781,7 +781,7 @@ static void _rtl_txrate_selectmode(struct
> > > > ieee80211_hw *hw,
> > > >
> > > > struct rtl_priv *rtlpriv = rtl_priv(hw);
> > > > struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
> > > > - struct rtl_sta_info *sta_entry = NULL;
> > > > + struct rtl_sta_info *sta_entry;
> > > Now the pointer just has garbage in it instead of the testable
> > > value
> > > of NULL. If you are concerned
> > > with the dereference perhaps you could add a NULL check, again
> > > it's
> > > hard to say without seeing the
> > > code.
> > Hello,
> >
> > Thanks for making me understand.
> >
> > Here is the code after declaration and initialization of
> > sta_entry.
> > Will it be good to add a NULL check in this case?
> >
> > struct rtl_sta_info *sta_entry = NULL;
> > u8 ratr_index = SET_RATE_ID(RATR_INX_WIRELESS_MC);
> >
> > if (sta) {
> > sta_entry = (struct rtl_sta_info *)sta->drv_priv;
> > ratr_index = sta_entry->ratr_index;
> > }
> Later in this function the macro SET_RATE_ID() is called, it relies
> on sta_entry being NULL if it
> was not explicitly set.
>
> Here is the macro;
>
> #define SET_RATE_ID(rate_id) \
> ((rtlpriv->cfg->spec_ver & RTL_SPEC_NEW_RATEID) ? \
> rtl_mrate_idx_to_arfr_id(hw, rate_id, \
> (sta_entry ? sta_entry->wireless_mode :
> \
> WIRELESS_MODE_G)) : \
> rate_id)
>
> >
> > If we are making a pointer point to NULL then what if any other
> > variable is already pointing to NULL for some other purpose.
> > Instead, removing initialization will be good right?
> A pointer does not _point_ to NULL as such. A NULL pointer has a
> value of all zero bytes. Have you
> read (and completed all the exercises) in KnR
>
> https://en.wikipedia.org/wiki/The_C_Programming_Language
>
> It is, in my opinion, one of the best tech books ever written. If you
> have any holes in your C
> knowledge, this is the place to start.
Thank you so much.
I will make sure that I don't make the same mistake again.
>
> Good luck,
> Tobin.
next prev parent reply other threads:[~2017-10-13 18:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-09 21:18 [PATCH] Staging: rtlwifi: Remove NULL pointer dereference Shreeya Patel
2017-10-10 0:06 ` Tobin C. Harding
2017-10-11 12:32 ` Shreeya Patel
2017-10-12 2:16 ` Tobin C. Harding
2017-10-13 18:55 ` Shreeya Patel [this message]
2017-10-11 19:11 ` kbuild test robot
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=1507920904.2087.2.camel@gmail.com \
--to=shreeya.patel23498@gmail.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=me@tobin.cc \
/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.