From: Simon Horman <simon.horman@corigine.com>
To: Ratheesh Kannoth <rkannoth@marvell.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
jhs@mojatatu.com, xiyou.wangcong@gmail.com, jiri@resnulli.us,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, Sunil Kovvuri Goutham <sgoutham@marvell.com>
Subject: Re: [PATCH net-next] flow_dissector: Add IPSEC dissectors
Date: Wed, 26 Jul 2023 09:38:52 +0200 [thread overview]
Message-ID: <ZMDNjD46BvZ5zp5I@corigine.com> (raw)
In-Reply-To: <MWHPR1801MB19180BF179A96933AC4E0070D300A@MWHPR1801MB1918.namprd18.prod.outlook.com>
On Wed, Jul 26, 2023 at 06:34:34AM +0000, Ratheesh Kannoth wrote:
> > From: Simon Horman <simon.horman@corigine.com>
> > Sent: Wednesday, July 26, 2023 1:21 AM
> > Subject: [EXT] Re: [PATCH net-next] flow_dissector: Add IPSEC dissectors
>
>
> > > FLOW_DISSECTOR_KEY_NUM_OF_VLANS, /* struct
> > flow_dissector_key_num_of_vlans */
> > > FLOW_DISSECTOR_KEY_PPPOE, /* struct flow_dissector_key_pppoe
> > */
> > > FLOW_DISSECTOR_KEY_L2TPV3, /* struct flow_dissector_key_l2tpv3
> > */
> > > + FLOW_DISSECTOR_KEY_IPSEC, /* struct flow_dissector_key_ipsec */
> > > FLOW_DISSECTOR_KEY_CFM, /* struct flow_dissector_key_cfm */
> > >
> > > FLOW_DISSECTOR_KEY_MAX,
> >
> > ...
> >
> > Hi Ratheesh,
> >
> > With this change, this enum now has 33 values, excluding
> > FLOW_DISSECTOR_KEY_MAX. I.e the range of values is from 0 to 32.
> >
> > But dissector_uses_key() looks like this:
> >
> >
> > static inline bool dissector_uses_key(const struct flow_dissector
> > *flow_dissector,
> > enum flow_dissector_key_id key_id) {
> > return flow_dissector->used_keys & (1 << key_id); }
> >
> > And the type of the used_keys field of struct flow_dissector is unsigned int, a
> > 32bit entity.
> >
> > So an overflow will now occur if key_id is FLOW_DISSECTOR_KEY_CFM.
> >
> > This is flagged by Sparse.
> >
Hi Ratheesh,
> Thank you !
> 1) How did you run sparse to detect this error. When I ran below command, it did not throw this error/warning ?
> make C=2 net/core/ V=s
I ran:
make C=2 net/core/flow_dissector.o
FWIIW, I also saw the warning using make C=2 net/core/ V=s
> sparse version is 0.6.4
I am using sparse git commit ce1a6720f69e, because at one point that
was the newest revision at a time the packaged version I had wasn't working
for me, and that was the latest commit at the time.
https://git.kernel.org/pub/scm/devel/sparse/sparse.git/commit/ce1a6720f69e
> 2) Is it okay to change variable type of "used_keys" from "unsigned int" to "unsigned long long" to accommodate this.
> This variable is used at lot of places in the code.
I might go for u64.
But yes, I suspect making the variable wider is a viable solution.
Given that it is widely used it would be good to inspect
how it is used to make sure this change makes sense.
I would make this change a separate patch if it is more than one line.
Also, while you are there, can you fix the spelling mistake in
the comment on the 'used_keys' line in struct flow_dissector ?
It's the same line that needs to be changed to change the type of 'used_keys'.
next prev parent reply other threads:[~2023-07-26 7:44 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-25 3:24 [PATCH net-next] flow_dissector: Add IPSEC dissectors Ratheesh Kannoth
2023-07-25 5:11 ` Leon Romanovsky
2023-07-26 5:52 ` Ratheesh Kannoth
2023-07-25 10:12 ` Ido Schimmel
2023-07-26 5:54 ` Ratheesh Kannoth
2023-07-25 19:50 ` Simon Horman
2023-07-26 6:34 ` Ratheesh Kannoth
2023-07-26 7:38 ` Simon Horman [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-07-25 14:36 kernel 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=ZMDNjD46BvZ5zp5I@corigine.com \
--to=simon.horman@corigine.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rkannoth@marvell.com \
--cc=sgoutham@marvell.com \
--cc=xiyou.wangcong@gmail.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.